<div xmlns:ext="http://www.extjs.com" class="body-wrap"><div class="inheritance res-block"><pre class="res-block-inner"><a href="output/Ext.util.Observable.html" ext:member="" ext:cls="Ext.util.Observable">Observable</a>
  <img src="resources/elbow-end.gif"><a href="output/Ext.data.Store.html" ext:member="" ext:cls="Ext.data.Store">Store</a>
    <img src="resources/elbow-end.gif">ArrayStore</pre></div><h1>Class <a href="source/ArrayStore.html#cls-Ext.data.ArrayStore">Ext.data.ArrayStore</a></h1><table cellspacing="0"><tr><td class="label">Package:</td><td class="hd-info">Ext.data</td></tr><tr><td class="label">Defined In:</td><td class="hd-info"><a href="source/ArrayStore.html#cls-Ext.data.ArrayStore">ArrayStore.js</a></td></tr><tr><td class="label">Class:</td><td class="hd-info"><a href="source/ArrayStore.html#cls-Ext.data.ArrayStore">ArrayStore</a></td></tr><tr><td class="label">Extends:</td><td class="hd-info"><a href="output/Ext.data.Store.html" ext:cls="Ext.data.Store" ext:member="">Store</a></td></tr></table><div class="description"><p>Formerly known as "SimpleStore".</p>
<p>Small helper class to make creating <a href="output/Ext.data.Store.html" ext:cls="Ext.data.Store">Ext.data.Store</a>s from Array data easier.
An ArrayStore will be automatically configured with a <a href="output/Ext.data.ArrayReader.html" ext:cls="Ext.data.ArrayReader">Ext.data.ArrayReader</a>.</p>
<p>A store configuration would be something like:<pre><code><b>var</b> store = <b>new</b> Ext.data.ArrayStore({
    <i>// store configs</i>
    autoDestroy: true,
    storeId: <em>'myStore'</em>,
    <i>// reader configs</i>
    idIndex: 0,  
    fields: [
       <em>'company'</em>,
       {name: <em>'price'</em>, type: <em>'float'</em>},
       {name: <em>'change'</em>, type: <em>'float'</em>},
       {name: <em>'pctChange'</em>, type: <em>'float'</em>},
       {name: <em>'lastChange'</em>, type: <em>'date'</em>, dateFormat: <em>'n/j h:ia'</em>}
    ]
});</code></pre></p>
<p>This store is configured to consume a returned object of the form:<pre><code><b>var</b> myData = [
    [<em>'3m Co'</em>,71.72,0.02,0.03,<em>'9/1 12:00am'</em>],
    [<em>'Alcoa Inc'</em>,29.01,0.42,1.47,<em>'9/1 12:00am'</em>],
    [<em>'Boeing Co.'</em>,75.43,0.53,0.71,<em>'9/1 12:00am'</em>],
    [<em>'Hewlett-Packard Co.'</em>,36.53,-0.03,-0.08,<em>'9/1 12:00am'</em>],
    [<em>'Wal-Mart Stores, Inc.'</em>,45.45,0.73,1.63,<em>'9/1 12:00am'</em>]
];</code></pre>
An object literal of this form could also be used as the <a href="output/Ext.data.ArrayStore.html#Ext.data.ArrayStore-data" ext:member="data" ext:cls="Ext.data.ArrayStore">data</a> config option.</p>
<p><b>*Note:</b> Although not listed here, this class accepts all of the configuration options of 
<b><a href="output/Ext.data.ArrayReader.html" ext:cls="Ext.data.ArrayReader">ArrayReader</a></b>.</p></div><div class="hr"></div><a id="Ext.data.ArrayStore-configs"></a><h2>Config Options</h2><table cellspacing="0" class="member-table"><tbody><tr><th colspan="2" class="sig-header">Config Options</th><th class="msource-header">Defined By</th></tr><tr class="config-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-autoDestroy"></a><b><a href="source/Store.html#cfg-Ext.data.Store-autoDestroy">autoDestroy</a></b> : Boolean<div class="mdesc"><div class="short">true to destroy the store when the component the store is bound
to is destroyed (defaults to false).
Note: this shoul...</div><div class="long"><tt>true</tt> to destroy the store when the component the store is bound
to is destroyed (defaults to <tt>false</tt>).
<p><b>Note</b>: this should be set to true when using stores that are bound to only 1 component.</p></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#autoDestroy" ext:member="#autoDestroy" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="config-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-autoLoad"></a><b><a href="source/Store.html#cfg-Ext.data.Store-autoLoad">autoLoad</a></b> : Boolean/Object<div class="mdesc"><div class="short">If data is not specified, and if autoLoad
is true or an Object, this store's load method is automatically called
afte...</div><div class="long">If <tt><a href="output/Ext.data.Store.html#Ext.data.Store-data" ext:member="data" ext:cls="Ext.data.Store">data</a></tt> is not specified, and if <tt>autoLoad</tt>
is <tt>true</tt> or an <tt>Object</tt>, this store's <a href="output/Ext.data.Store.html#Ext.data.Store-load" ext:member="load" ext:cls="Ext.data.Store">load</a> method is automatically called
after creation. If the value of <tt>autoLoad</tt> is an <tt>Object</tt>, this <tt>Object</tt> will
be passed to the store's <a href="output/Ext.data.Store.html#Ext.data.Store-load" ext:member="load" ext:cls="Ext.data.Store">load</a> method.</div></div></td><td class="msource"><a href="output/Ext.data.Store.html#autoLoad" ext:member="#autoLoad" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="config-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-autoSave"></a><b><a href="source/Store.html#cfg-Ext.data.Store-autoSave">autoSave</a></b> : Boolean<div class="mdesc"><div class="short">Defaults to true causing the store to automatically save records to
the server when a record is modified (ie: becomes...</div><div class="long"><p>Defaults to <tt>true</tt> causing the store to automatically <a href="output/Ext.data.Store.html#Ext.data.Store-save" ext:member="save" ext:cls="Ext.data.Store">save</a> records to
the server when a record is modified (ie: becomes 'dirty'). Specify <tt>false</tt> to manually call <a href="output/Ext.data.Store.html#Ext.data.Store-save" ext:member="save" ext:cls="Ext.data.Store">save</a>
to send all modifiedRecords to the server.</p>
<br><p><b>Note</b>: each CRUD action will be sent as a separate request.</p></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#autoSave" ext:member="#autoSave" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="config-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-baseParams"></a><b><a href="source/Store.html#cfg-Ext.data.Store-baseParams">baseParams</a></b> : Object<div class="mdesc"><div class="short">An object containing properties which are to be sent as parameters
for every HTTP request.
Parameters are encoded as ...</div><div class="long"><p>An object containing properties which are to be sent as parameters
for <i>every</i> HTTP request.</p>
<p>Parameters are encoded as standard HTTP parameters using <a href="output/Ext.html#Ext-urlEncode" ext:member="urlEncode" ext:cls="Ext">Ext.urlEncode</a>.</p>
<p><b>Note</b>: <code>baseParams</code> may be superseded by any <code>params</code>
specified in a <code><a href="output/Ext.data.Store.html#Ext.data.Store-load" ext:member="load" ext:cls="Ext.data.Store">load</a></code> request, see <code><a href="output/Ext.data.Store.html#Ext.data.Store-load" ext:member="load" ext:cls="Ext.data.Store">load</a></code>
for more details.</p>
This property may be modified after creation using the <code><a href="output/Ext.data.Store.html#Ext.data.Store-setBaseParam" ext:member="setBaseParam" ext:cls="Ext.data.Store">setBaseParam</a></code>
method.</div></div></td><td class="msource"><a href="output/Ext.data.Store.html#baseParams" ext:member="#baseParams" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="config-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-batch"></a><b><a href="source/Store.html#cfg-Ext.data.Store-batch">batch</a></b> : Boolean<div class="mdesc"><div class="short">Defaults to true (unless restful:true). Multiple
requests for each CRUD action (CREATE, READ, UPDATE and DESTROY) wil...</div><div class="long"><p>Defaults to <tt>true</tt> (unless <code><a href="output/Ext.data.Store.html#Ext.data.Store-restful" ext:member="restful" ext:cls="Ext.data.Store">restful</a>:true</code>). Multiple
requests for each CRUD action (CREATE, READ, UPDATE and DESTROY) will be combined
and sent as one transaction. Only applies when <code><a href="output/Ext.data.Store.html#Ext.data.Store-autoSave" ext:member="autoSave" ext:cls="Ext.data.Store">autoSave</a></code> is set
to <tt>false</tt>.</p>
<br><p>If Store is RESTful, the DataProxy is also RESTful, and a unique transaction is
generated for each record.</p></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#batch" ext:member="#batch" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="config-row  inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-data"></a><b><a href="source/Store.html#cfg-Ext.data.Store-data">data</a></b> : Array<div class="mdesc">An inline data object readable by the <code><a href="output/Ext.data.Store.html#Ext.data.Store-reader" ext:member="reader" ext:cls="Ext.data.Store">reader</a></code>.
Typically this option, or the <code><a href="output/Ext.data.Store.html#Ext.data.Store-url" ext:member="url" ext:cls="Ext.data.Store">url</a></code> option will be specified.</div></td><td class="msource"><a href="output/Ext.data.Store.html#data" ext:member="#data" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="config-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-defaultParamNames"></a><b><a href="source/Store.html#cfg-Ext.data.Store-defaultParamNames">defaultParamNames</a></b> : Object<div class="mdesc"><div class="short">Provides the default values for the paramNames property. To globally modify the parameters
for all stores, this objec...</div><div class="long">Provides the default values for the <a href="output/Ext.data.Store.html#Ext.data.Store-paramNames" ext:member="paramNames" ext:cls="Ext.data.Store">paramNames</a> property. To globally modify the parameters
for all stores, this object should be changed on the store prototype.</div></div></td><td class="msource"><a href="output/Ext.data.Store.html#defaultParamNames" ext:member="#defaultParamNames" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="config-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-listeners"></a><b><a href="source/Observable.html#cfg-Ext.util.Observable-listeners">listeners</a></b> : Object<div class="mdesc"><div class="short">A config object containing one or more event handlers to be added to this
object during initialization.  This should ...</div><div class="long"><p>A config object containing one or more event handlers to be added to this
object during initialization.  This should be a valid listeners config object as specified in the
<a href="output/Ext.util.Observable.html#Ext.util.Observable-addListener" ext:member="addListener" ext:cls="Ext.util.Observable">addListener</a> example for attaching multiple handlers at once.</p>
<br><p><b><u>DOM events from ExtJs <a href="output/Ext.Component.html" ext:cls="Ext.Component">Components</a></u></b></p>
<br><p>While <i>some</i> ExtJs Component classes export selected DOM events (e.g. "click", "mouseover" etc), this
is usually only done when extra value can be added. For example the <a href="output/Ext.DataView.html" ext:cls="Ext.DataView">DataView</a>'s
<b><code><a href="output/Ext.DataView.html#Ext.DataView-click" ext:member="click" ext:cls="Ext.DataView">click</a></code></b> event passing the node clicked on. To access DOM
events directly from a Component's HTMLElement, listeners must be added to the <i><a href="output/Ext.Component.html#Ext.Component-getEl" ext:member="getEl" ext:cls="Ext.Component">Element</a></i> after the Component
has been rendered. A plugin can simplify this step:<pre><code><i>// Plugin is configured <b>with</b> a listeners config object.</i>
<i>// The Component is appended to the argument list of all handler functions.</i>
Ext.DomObserver = Ext.extend(Object, {
    constructor: <b>function</b>(config) {
        this.listeners = config.listeners ? config.listeners : config;
    },

    <i>// Component passes itself into plugin&#39;s init method</i>
    init: <b>function</b>(c) {
        <b>var</b> p, l = this.listeners;
        <b>for</b> (p <b>in</b> l) {
            <b>if</b> (Ext.isFunction(l[p])) {
                l[p] = this.createHandler(l[p], c);
            } <b>else</b> {
                l[p].fn = this.createHandler(l[p].fn, c);
            }
        }

        <i>// Add the listeners to the Element immediately following the render call</i>
        c.render = c.render.<a href="output/Function.html#Function-createSequence" ext:member="createSequence" ext:cls="Function">createSequence</a>(<b>function</b>() {
            <b>var</b> e = c.getEl();
            <b>if</b> (e) {
                e.on(l);
            }
        });
    },

    createHandler: <b>function</b>(fn, c) {
        <b>return</b> <b>function</b>(e) {
            fn.call(this, e, c);
        };
    }
});

<b>var</b> combo = <b>new</b> Ext.form.ComboBox({

    <i>// Collapse combo when its element is clicked on</i>
    plugins: [ <b>new</b> Ext.DomObserver({
        click: <b>function</b>(evt, comp) {
            comp.collapse();
        }
    })],
    store: myStore,
    typeAhead: true,
    mode: <em>'local'</em>,
    triggerAction: <em>'all'</em>
});</code></pre></p></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#listeners" ext:member="#listeners" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="config-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-paramNames"></a><b><a href="source/Store.html#cfg-Ext.data.Store-paramNames">paramNames</a></b> : Object<div class="mdesc"><div class="short">An object containing properties which specify the names of the paging and
sorting parameters passed to remote servers...</div><div class="long"><p>An object containing properties which specify the names of the paging and
sorting parameters passed to remote servers when loading blocks of data. By default, this
object takes the following form:</p><pre><code>{
    start : <em>'start'</em>,  <i>// The parameter name which specifies the start row</i>
    limit : <em>'limit'</em>,  <i>// The parameter name which specifies number of rows to <b>return</b></i>
    sort : <em>'sort'</em>,    <i>// The parameter name which specifies the column to sort on</i>
    dir : <em>'dir'</em>       <i>// The parameter name which specifies the sort direction</i>
}</code></pre>
<p>The server must produce the requested data block upon receipt of these parameter names.
If different parameter names are required, this property can be overriden using a configuration
property.</p>
<p>A <a href="output/Ext.PagingToolbar.html" ext:cls="Ext.PagingToolbar">PagingToolbar</a> bound to this Store uses this property to determine
the parameter names to use in its <a href="output/Ext.data.Store.html#Ext.data.Store-load" ext:member="load" ext:cls="Ext.data.Store">requests</a>.</div></div></td><td class="msource"><a href="output/Ext.data.Store.html#paramNames" ext:member="#paramNames" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="config-row  inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-proxy"></a><b><a href="source/Store.html#cfg-Ext.data.Store-proxy">proxy</a></b> : Ext.data.DataProxy<div class="mdesc">The <a href="output/Ext.data.DataProxy.html" ext:cls="Ext.data.DataProxy">DataProxy</a> object which provides
access to a data object.  See <code><a href="output/Ext.data.Store.html#Ext.data.Store-url" ext:member="url" ext:cls="Ext.data.Store">url</a></code>.</div></td><td class="msource"><a href="output/Ext.data.Store.html#proxy" ext:member="#proxy" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="config-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-pruneModifiedRecords"></a><b><a href="source/Store.html#cfg-Ext.data.Store-pruneModifiedRecords">pruneModifiedRecords</a></b> : Boolean<div class="mdesc"><div class="short">true to clear all modified record information each time
the store is loaded or when a record is removed (defaults to ...</div><div class="long"><tt>true</tt> to clear all modified record information each time
the store is loaded or when a record is removed (defaults to <tt>false</tt>). See <a href="output/Ext.data.Store.html#Ext.data.Store-getModifiedRecords" ext:member="getModifiedRecords" ext:cls="Ext.data.Store">getModifiedRecords</a>
for the accessor method to retrieve the modified records.</div></div></td><td class="msource"><a href="output/Ext.data.Store.html#pruneModifiedRecords" ext:member="#pruneModifiedRecords" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="config-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-remoteSort"></a><b><a href="source/Store.html#cfg-Ext.data.Store-remoteSort">remoteSort</a></b> : boolean<div class="mdesc"><div class="short">true if sorting is to be handled by requesting the Proxy
to provide a refreshed version of the data object in sorted ...</div><div class="long"><tt>true</tt> if sorting is to be handled by requesting the <tt><a href="output/Ext.data.Store.html#Ext.data.Store-proxy" ext:member="proxy" ext:cls="Ext.data.Store">Proxy</a></tt>
to provide a refreshed version of the data object in sorted order, as opposed to sorting the Record cache
in place (defaults to <tt>false</tt>).
<p>If <tt>remoteSort</tt> is <tt>true</tt>, then clicking on a <a href="output/Ext.grid.Column.html" ext:cls="Ext.grid.Column">Grid Column</a>'s
<a href="output/Ext.grid.Column.html#Ext.grid.Column-header" ext:member="header" ext:cls="Ext.grid.Column">header</a> causes the current page to be requested from the server appending
the following two parameters to the <b><tt><a href="output/Ext.data.Store.html#Ext.data.Store-load" ext:member="load" ext:cls="Ext.data.Store">params</a></tt></b>:<div class="mdetail-params"><ul>
<li><b><tt>sort</tt></b> : String<p class="sub-desc">The <tt>name</tt> (as specified in the Record's
<a href="output/Ext.data.Field.html" ext:cls="Ext.data.Field">Field definition</a>) of the field to sort on.</p></li>
<li><b><tt>dir</tt></b> : String<p class="sub-desc">The direction of the sort, 'ASC' or 'DESC' (case-sensitive).</p></li>
</ul></div></p></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#remoteSort" ext:member="#remoteSort" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="config-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-restful"></a><b><a href="source/Store.html#cfg-Ext.data.Store-restful">restful</a></b> : Boolean<div class="mdesc"><div class="short">Defaults to false.  Set to true to have the Store and the set
Proxy operate in a RESTful manner. The store will autom...</div><div class="long">Defaults to <tt>false</tt>.  Set to <tt>true</tt> to have the Store and the set
Proxy operate in a RESTful manner. The store will automatically generate GET, POST,
PUT and DELETE requests to the server. The HTTP method used for any given CRUD
action is described in <a href="output/Ext.data.Api.html#Ext.data.Api-restActions" ext:member="restActions" ext:cls="Ext.data.Api">Ext.data.Api.restActions</a>.  For additional information
see <a href="output/Ext.data.DataProxy.html#Ext.data.DataProxy-restful" ext:member="restful" ext:cls="Ext.data.DataProxy">Ext.data.DataProxy.restful</a>.
<p><b>Note</b>: if <code><a href="output/Ext.data.Store.html#Ext.data.Store-restful" ext:member="restful" ext:cls="Ext.data.Store">restful</a>:true</code> <code>batch</code> will
internally be set to <tt>false</tt>.</p></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#restful" ext:member="#restful" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="config-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-sortInfo"></a><b><a href="source/Store.html#cfg-Ext.data.Store-sortInfo">sortInfo</a></b> : Object<div class="mdesc"><div class="short">A config object to specify the sort order in the request of a Store's
load operation.  Note that for local sorting, t...</div><div class="long">A config object to specify the sort order in the request of a Store's
<a href="output/Ext.data.Store.html#Ext.data.Store-load" ext:member="load" ext:cls="Ext.data.Store">load</a> operation.  Note that for local sorting, the <tt>direction</tt> property is
case-sensitive. See also <a href="output/Ext.data.Store.html#Ext.data.Store-remoteSort" ext:member="remoteSort" ext:cls="Ext.data.Store">remoteSort</a> and <a href="output/Ext.data.Store.html#Ext.data.Store-paramNames" ext:member="paramNames" ext:cls="Ext.data.Store">paramNames</a>.
For example:<pre><code>sortInfo: {
    field: <em>'fieldName'</em>,
    direction: <em>'ASC'</em> <i>// or <em>'DESC'</em> (<b>case</b> sensitive <b>for</b> local sorting)</i>
}</code></pre></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#sortInfo" ext:member="#sortInfo" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="config-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-storeId"></a><b><a href="source/Store.html#cfg-Ext.data.Store-storeId">storeId</a></b> : String<div class="mdesc"><div class="short">If passed, the id to use to register with the StoreMgr.
Note: if a (deprecated) id is specified it will supersede the...</div><div class="long">If passed, the id to use to register with the <b><a href="output/Ext.StoreMgr.html" ext:cls="Ext.StoreMgr">StoreMgr</a></b>.
<p><b>Note</b>: if a (deprecated) <tt><a href="output/Ext.data.Store.html#Ext.data.Store-id" ext:member="id" ext:cls="Ext.data.Store">id</a></tt> is specified it will supersede the <tt>storeId</tt>
assignment.</p></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#storeId" ext:member="#storeId" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="config-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-url"></a><b><a href="source/Store.html#cfg-Ext.data.Store-url">url</a></b> : String<div class="mdesc"><div class="short">If a proxy is not specified the url will be used to
implicitly configure a HttpProxy if an url is specified.
Typicall...</div><div class="long">If a <tt><a href="output/Ext.data.Store.html#Ext.data.Store-proxy" ext:member="proxy" ext:cls="Ext.data.Store">proxy</a></tt> is not specified the <tt>url</tt> will be used to
implicitly configure a <a href="output/Ext.data.HttpProxy.html" ext:cls="Ext.data.HttpProxy">HttpProxy</a> if an <tt>url</tt> is specified.
Typically this option, or the <code><a href="output/Ext.data.Store.html#Ext.data.Store-data" ext:member="data" ext:cls="Ext.data.Store">data</a></code> option will be specified.</div></div></td><td class="msource"><a href="output/Ext.data.Store.html#url" ext:member="#url" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="config-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-writer"></a><b><a href="source/Store.html#cfg-Ext.data.Store-writer">writer</a></b> : Ext.data.DataWriter<div class="mdesc"><div class="short">The Writer object which processes a record object for being written
to the server-side database.
When a writer is ins...</div><div class="long"><p>The <a href="output/Ext.data.DataWriter.html" ext:cls="Ext.data.DataWriter">Writer</a> object which processes a record object for being written
to the server-side database.</p>
<br><p>When a writer is installed into a Store the <a href="output/Ext.data.Store.html#Ext.data.Store-add" ext:member="add" ext:cls="Ext.data.Store">add</a>, <a href="output/Ext.data.Store.html#Ext.data.Store-remove" ext:member="remove" ext:cls="Ext.data.Store">remove</a>, and <a href="output/Ext.data.Store.html#Ext.data.Store-update" ext:member="update" ext:cls="Ext.data.Store">update</a>
events on the store are monitored in order to remotely <a href="output/Ext.data.Store.html#Ext.data.Store-createRecords" ext:member="createRecords" ext:cls="Ext.data.Store">create records</a>,
<a href="output/Ext.data.Store.html#Ext.data.Store-destroyRecord" ext:member="destroyRecord" ext:cls="Ext.data.Store">destroy records</a>, or <a href="output/Ext.data.Store.html#Ext.data.Store-updateRecord" ext:member="updateRecord" ext:cls="Ext.data.Store">update records</a>.</p>
<br><p>The proxy for this store will relay any <a href="output/Ext.data.Store.html#Ext.data.Store-writexception" ext:member="writexception" ext:cls="Ext.data.Store">writexception</a> events to this store.</p>
<br><p>Sample implementation:
<pre><code><b>var</b> writer = <b>new</b> <a href="output/Ext.data.JsonWriter.html" ext:cls="Ext.data.JsonWriter">Ext.data.JsonWriter</a>({
    encode: true,
    writeAllFields: true <i>// write all fields, not just those that changed</i>
});

<i>// Typical Store collecting the Proxy, Reader and Writer together.</i>
<b>var</b> store = <b>new</b> Ext.data.Store({
    storeId: <em>'user'</em>,
    root: <em>'records'</em>,
    proxy: proxy,
    reader: reader,
    writer: writer,     <i>// <-- plug a DataWriter into the store just as you would a Reader</i>
    paramsAsHash: true,
    autoSave: false    <i>// <-- false to delay executing create, update, destroy requests</i>
                        <i>//     until specifically told to <b>do</b> so.</i>
});</code></pre></p></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#writer" ext:member="#writer" ext:cls="Ext.data.Store">Store</a></td></tr></tbody></table><a id="Ext.data.ArrayStore-props"></a><h2>Public Properties</h2><table cellspacing="0" class="member-table"><tbody><tr><th colspan="2" class="sig-header">Property</th><th class="msource-header">Defined By</th></tr><tr class="property-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-baseParams"></a><b><a href="source/Store.html#prop-Ext.data.Store-baseParams">baseParams</a></b> : Object<div class="mdesc"><div class="short">See the corresponding configuration option
for a description of this property.
To modify this property see setBasePar...</div><div class="long">See the <code><a href="output/Ext.data.Store.html#Ext.data.Store-baseParams" ext:member="baseParams" ext:cls="Ext.data.Store">corresponding configuration option</a></code>
for a description of this property.
To modify this property see <code><a href="output/Ext.data.Store.html#Ext.data.Store-setBaseParam" ext:member="setBaseParam" ext:cls="Ext.data.Store">setBaseParam</a></code>.</div></div></td><td class="msource"><a href="output/Ext.data.Store.html#baseParams" ext:member="#baseParams" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="property-row  inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-fields"></a><b><a href="source/Store.html#prop-Ext.data.Store-fields">fields</a></b> : Ext.util.MixedCollection<div class="mdesc">A <a href="output/Ext.util.MixedCollection.html" ext:cls="Ext.util.MixedCollection">MixedCollection</a> containing the defined <a href="output/Ext.data.Field.html" ext:cls="Ext.data.Field">Field</a>s
for the <a href="output/Ext.data.Record.html" ext:cls="Ext.data.Record">Records</a> stored in this Store. Read-only.</div></td><td class="msource"><a href="output/Ext.data.Store.html#fields" ext:member="#fields" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="property-row  inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-isDestroyed"></a><b><a href="source/Store.html#prop-Ext.data.Store-isDestroyed">isDestroyed</a></b> : Boolean
True if the store has been destroyed already. Read only<div class="mdesc"></div></td><td class="msource"><a href="output/Ext.data.Store.html#isDestroyed" ext:member="#isDestroyed" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="property-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-lastOptions"></a><b><a href="source/Store.html#prop-Ext.data.Store-lastOptions">lastOptions</a></b> : Object<div class="mdesc"><div class="short">Contains the last options object used as the parameter to the load method. See load
for the details of what this may ...</div><div class="long">Contains the last options object used as the parameter to the <a href="output/Ext.data.Store.html#Ext.data.Store-load" ext:member="load" ext:cls="Ext.data.Store">load</a> method. See <a href="output/Ext.data.Store.html#Ext.data.Store-load" ext:member="load" ext:cls="Ext.data.Store">load</a>
for the details of what this may contain. This may be useful for accessing any params which were used
to load the current Record cache.</div></div></td><td class="msource"><a href="output/Ext.data.Store.html#lastOptions" ext:member="#lastOptions" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="property-row  inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-multiSort"></a><b><a href="source/Store.html#prop-Ext.data.Store-multiSort">multiSort</a></b> : Boolean
True if this store is currently sorted by more than one field/direction combination.<div class="mdesc"></div></td><td class="msource"><a href="output/Ext.data.Store.html#multiSort" ext:member="#multiSort" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="property-row  inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-multiSortInfo"></a><b><a href="source/Store.html#prop-Ext.data.Store-multiSortInfo">multiSortInfo</a></b> : Object<div class="mdesc">Object containing overall sort direction and an ordered array of sorter configs used when sorting on multiple fields</div></td><td class="msource"><a href="output/Ext.data.Store.html#multiSortInfo" ext:member="#multiSortInfo" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="property-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-recordType"></a><b><a href="source/Store.html#prop-Ext.data.Store-recordType">recordType</a></b> : Function<div class="mdesc"><div class="short">The Record constructor as supplied to (or created by) the
Reader. Read-only.
If the Reader was constructed by passing...</div><div class="long">The <a href="output/Ext.data.Record.html" ext:cls="Ext.data.Record">Record</a> constructor as supplied to (or created by) the
<a href="output/Ext.data.DataReader.html" ext:cls="Ext.data.DataReader">Reader</a>. Read-only.
<p>If the Reader was constructed by passing in an Array of <a href="output/Ext.data.Field.html" ext:cls="Ext.data.Field">Ext.data.Field</a> definition objects,
instead of a Record constructor, it will implicitly create a Record constructor from that Array (see
<a href="output/Ext.data.Record.html" ext:cls="Ext.data.Record">Ext.data.Record</a>.<a href="output/Ext.data.Record.html#Ext.data.Record-create" ext:member="create" ext:cls="Ext.data.Record">create</a> for additional details).</p>
<p>This property may be used to create new Records of the type held in this Store, for example:</p><pre><code><i>// create the data store</i>
    <b>var</b> store = <b>new</b> Ext.data.ArrayStore({
        autoDestroy: true,
        fields: [
           {name: <em>'company'</em>},
           {name: <em>'price'</em>, type: <em>'float'</em>},
           {name: <em>'change'</em>, type: <em>'float'</em>},
           {name: <em>'pctChange'</em>, type: <em>'float'</em>},
           {name: <em>'lastChange'</em>, type: <em>'date'</em>, dateFormat: <em>'n/j h:ia'</em>}
        ]
    });
    store.loadData(myData);

    <i>// create the Grid</i>
    <b>var</b> grid = <b>new</b> Ext.grid.EditorGridPanel({
        store: store,
        colModel: <b>new</b> Ext.grid.ColumnModel({
            columns: [
                {id:<em>'company'</em>, header: <em>'Company'</em>, width: 160, dataIndex: <em>'company'</em>},
                {header: <em>'Price'</em>, renderer: <em>'usMoney'</em>, dataIndex: <em>'price'</em>},
                {header: <em>'Change'</em>, renderer: change, dataIndex: <em>'change'</em>},
                {header: <em>'% Change'</em>, renderer: pctChange, dataIndex: <em>'pctChange'</em>},
                {header: <em>'Last Updated'</em>, width: 85,
                    renderer: Ext.util.Format.dateRenderer(<em>'m/d/Y'</em>),
                    dataIndex: <em>'lastChange'</em>}
            ],
            defaults: {
                sortable: true,
                width: 75
            }
        }),
        autoExpandColumn: <em>'company'</em>, <i>// match the id specified <b>in</b> the column model</i>
        height:350,
        width:600,
        title:<em>'Array Grid'</em>,
        tbar: [{
            text: <em>'Add Record'</em>,
            handler : <b>function</b>(){
                <b>var</b> defaultData = {
                    change: 0,
                    company: <em>'New Company'</em>,
                    lastChange: (<b>new</b> Date()).clearTime(),
                    pctChange: 0,
                    price: 10
                };
                <b>var</b> recId = 3; <i>// provide unique id</i>
                <b>var</b> p = <b>new</b> store.recordType(defaultData, recId); <i>// create <b>new</b> record</i>
                grid.stopEditing();
                store.<a href="output/Ext.data.Store.html#Ext.data.Store-insert" ext:member="insert" ext:cls="Ext.data.Store">insert</a>(0, p); <i>// insert a <b>new</b> record into the store (also see <a href="output/Ext.data.Store.html#Ext.data.Store-add" ext:member="add" ext:cls="Ext.data.Store">add</a>)</i>
                grid.startEditing(0, 0);
            }
        }]
    });</code></pre></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#recordType" ext:member="#recordType" ext:cls="Ext.data.Store">Store</a></td></tr></tbody></table><a id="Ext.data.ArrayStore-methods"></a><h2>Public Methods</h2><table cellspacing="0" class="member-table"><tbody><tr><th colspan="2" class="sig-header">Method</th><th class="msource-header">Defined By</th></tr><tr class="method-row expandable"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.ArrayStore-ArrayStore"></a><b class="constructor"><a href="source/ArrayStore.html#cls-Ext.data.ArrayStore">ArrayStore</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">Object&nbsp;config</span><span class="closeparen">&nbsp;)</span><div class="mdesc"><div class="short"></div><div class="long"><div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>config</code> : Object<div class="sub-desc"></div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource">ArrayStore</td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-add"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-add">add</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">Ext.data.Record[]&nbsp;records</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">void</span><div class="mdesc"><div class="short">Add Records to the Store and fires the add event.  To add Records
to the store from a remote source use load({add:tru...</div><div class="long">Add Records to the Store and fires the <a href="output/Ext.data.Store.html#Ext.data.Store-add" ext:member="add" ext:cls="Ext.data.Store">add</a> event.  To add Records
to the store from a remote source use <code><a href="output/Ext.data.Store.html#Ext.data.Store-load" ext:member="load" ext:cls="Ext.data.Store">load</a>({add:true})</code>.
See also <code><a href="output/Ext.data.Store.html#Ext.data.Store-recordType" ext:member="recordType" ext:cls="Ext.data.Store">recordType</a></code> and <code><a href="output/Ext.data.Store.html#Ext.data.Store-insert" ext:member="insert" ext:cls="Ext.data.Store">insert</a></code>.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>records</code> : Ext.data.Record[]<div class="sub-desc">An Array of Ext.data.Record objects
to add to the cache. See <a href="output/Ext.data.Store.html#Ext.data.Store-recordType" ext:member="recordType" ext:cls="Ext.data.Store">recordType</a>.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#add" ext:member="#add" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-addEvents"></a><b class="method"><a href="source/Observable.html#method-Ext.util.Observable-addEvents">addEvents</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">Object|String&nbsp;o</span><span class="comma">,&nbsp;</span><span title="Required" class="required">string&nbsp;Optional.</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">void</span><div class="mdesc"><div class="short">Adds the specified events to the list of events which this Observable may fire.</div><div class="long">Adds the specified events to the list of events which this Observable may fire.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>o</code> : Object|String<div class="sub-desc">Either an object with event names as properties with a value of <code>true</code>
or the first event name string if multiple event names are being passed as separate parameters.</div></li><li><code>Optional.</code> : string<div class="sub-desc">Event name if multiple event names are being passed as separate parameters.
Usage:<pre><code>this.addEvents(<em>'storeloaded'</em>, <em>'storecleared'</em>);</code></pre></div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#addEvents" ext:member="#addEvents" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-addListener"></a><b class="method"><a href="source/Observable.html#method-Ext.util.Observable-addListener">addListener</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">String&nbsp;eventName</span><span class="comma">,&nbsp;</span><span title="Required" class="required">Function&nbsp;handler</span><span class="comma">,&nbsp;</span><span title="Optional" class="optional">[Object&nbsp;scope]</span><span class="comma">,&nbsp;</span><span title="Optional" class="optional">[Object&nbsp;options]</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">void</span><div class="mdesc"><div class="short">Appends an event handler to this object.</div><div class="long">Appends an event handler to this object.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>eventName</code> : String<div class="sub-desc">The name of the event to listen for.</div></li><li><code>handler</code> : Function<div class="sub-desc">The method the event invokes.</div></li><li><code>scope</code> : Object<div class="sub-desc">(optional) The scope (<code><b>this</b></code> reference) in which the handler function is executed.
<b>If omitted, defaults to the object which fired the event.</b></div></li><li><code>options</code> : Object<div class="sub-desc">(optional) An object containing handler configuration.
properties. This may contain any of the following properties:<ul>
<li><b>scope</b> : Object<div class="sub-desc">The scope (<code><b>this</b></code> reference) in which the handler function is executed.
<b>If omitted, defaults to the object which fired the event.</b></div></li>
<li><b>delay</b> : Number<div class="sub-desc">The number of milliseconds to delay the invocation of the handler after the event fires.</div></li>
<li><b>single</b> : Boolean<div class="sub-desc">True to add a handler to handle just the next firing of the event, and then remove itself.</div></li>
<li><b>buffer</b> : Number<div class="sub-desc">Causes the handler to be scheduled to run in an <a href="output/Ext.util.DelayedTask.html" ext:cls="Ext.util.DelayedTask">Ext.util.DelayedTask</a> delayed
by the specified number of milliseconds. If the event fires again within that time, the original
handler is <em>not</em> invoked, but the new handler is scheduled in its place.</div></li>
<li><b>target</b> : Observable<div class="sub-desc">Only call the handler if the event was fired on the target Observable, <i>not</i>
if the event was bubbled up from a child Observable.</div></li>
</ul><br>
<p>
<b>Combining Options</b><br>
Using the options argument, it is possible to combine different types of listeners:<br>
<br>
A delayed, one-time listener.
<pre><code>myDataView.on(<em>'click'</em>, this.onClick, this, {
single: true,
delay: 100
});</code></pre>
<p>
<b>Attaching multiple handlers in 1 call</b><br>
The method also allows for a single argument to be passed which is a config object containing properties
which specify multiple handlers.
<p>
<pre><code>myGridPanel.on({
<em>'click'</em> : {
    fn: this.onClick,
    scope: this,
    delay: 100
},
<em>'mouseover'</em> : {
    fn: this.onMouseOver,
    scope: this
},
<em>'mouseout'</em> : {
    fn: this.onMouseOut,
    scope: this
}
});</code></pre>
<p>
Or a shorthand syntax:<br>
<pre><code>myGridPanel.on({
<em>'click'</em> : this.onClick,
<em>'mouseover'</em> : this.onMouseOver,
<em>'mouseout'</em> : this.onMouseOut,
 scope: this
});</code></pre></div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#addListener" ext:member="#addListener" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-addSorted"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-addSorted">addSorted</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">Ext.data.Record&nbsp;record</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">void</span><div class="mdesc"><div class="short">(Local sort only) Inserts the passed Record into the Store at the index where it
should go based on the current sort ...</div><div class="long">(Local sort only) Inserts the passed Record into the Store at the index where it
should go based on the current sort information.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>record</code> : Ext.data.Record<div class="sub-desc"></div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#addSorted" ext:member="#addSorted" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-clearFilter"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-clearFilter">clearFilter</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">Boolean&nbsp;suppressEvent</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">void</span><div class="mdesc"><div class="short">Revert to a view of the Record cache with no filtering applied.</div><div class="long">Revert to a view of the Record cache with no filtering applied.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>suppressEvent</code> : Boolean<div class="sub-desc">If <tt>true</tt> the filter is cleared silently without firing the
<a href="output/Ext.data.Store.html#Ext.data.Store-datachanged" ext:member="datachanged" ext:cls="Ext.data.Store">datachanged</a> event.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#clearFilter" ext:member="#clearFilter" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-collect"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-collect">collect</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">String&nbsp;dataIndex</span><span class="comma">,&nbsp;</span><span title="Optional" class="optional">[Boolean&nbsp;allowNull]</span><span class="comma">,&nbsp;</span><span title="Optional" class="optional">[Boolean&nbsp;bypassFilter]</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">Array</span><div class="mdesc"><div class="short">Collects unique values for a particular dataIndex from this store.</div><div class="long">Collects unique values for a particular dataIndex from this store.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>dataIndex</code> : String<div class="sub-desc">The property to collect</div></li><li><code>allowNull</code> : Boolean<div class="sub-desc">(optional) Pass true to allow null, undefined or empty string values</div></li><li><code>bypassFilter</code> : Boolean<div class="sub-desc">(optional) Pass true to collect from all records, even ones which are filtered</div></li></ul><strong>Returns:</strong><ul><li><code>Array</code><div class="sub-desc">An array of the unique values</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#collect" ext:member="#collect" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-commitChanges"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-commitChanges">commitChanges</a></b><span class="openparen">(</span><span class="closeparen">)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">void</span><div class="mdesc"><div class="short">Commit all Records with outstanding changes. To handle updates for changes,
subscribe to the Store's update event, an...</div><div class="long">Commit all Records with <a href="output/Ext.data.Store.html#Ext.data.Store-getModifiedRecords" ext:member="getModifiedRecords" ext:cls="Ext.data.Store">outstanding changes</a>. To handle updates for changes,
subscribe to the Store's <a href="output/Ext.data.Store.html#Ext.data.Store-update" ext:member="update" ext:cls="Ext.data.Store">update event</a>, and perform updating when the third parameter is
Ext.data.Record.COMMIT.<div class="mdetail-params"><strong>Parameters:</strong><ul><li>None.</li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#commitChanges" ext:member="#commitChanges" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-destroy"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-destroy">destroy</a></b><span class="openparen">(</span><span class="closeparen">)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">void</span><div class="mdesc"><div class="short">Destroys the store.</div><div class="long">Destroys the store.<div class="mdetail-params"><strong>Parameters:</strong><ul><li>None.</li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#destroy" ext:member="#destroy" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-each"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-each">each</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">Function&nbsp;fn</span><span class="comma">,&nbsp;</span><span title="Optional" class="optional">[Object&nbsp;scope]</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">void</span><div class="mdesc"><div class="short">Calls the specified function for each of the Records in the cache.</div><div class="long">Calls the specified function for each of the <a href="output/Ext.data.Record.html" ext:cls="Ext.data.Record">Records</a> in the cache.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>fn</code> : Function<div class="sub-desc">The function to call. The <a href="output/Ext.data.Record.html" ext:cls="Ext.data.Record">Record</a> is passed as the first parameter.
Returning <tt>false</tt> aborts and exits the iteration.</div></li><li><code>scope</code> : Object<div class="sub-desc">(optional) The scope (<code>this</code> reference) in which the function is executed.
Defaults to the current <a href="output/Ext.data.Record.html" ext:cls="Ext.data.Record">Record</a> in the iteration.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#each" ext:member="#each" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-enableBubble"></a><b class="method"><a href="source/Observable-more.html#method-Ext.util.Observable-enableBubble">enableBubble</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">String/Array&nbsp;events</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">void</span><div class="mdesc"><div class="short">Enables events fired by this Observable to bubble up an owner hierarchy by calling
this.getBubbleTarget() if present....</div><div class="long"><p>Enables events fired by this Observable to bubble up an owner hierarchy by calling
<code>this.getBubbleTarget()</code> if present. There is no implementation in the Observable base class.</p>
<p>This is commonly used by Ext.Components to bubble events to owner Containers. See <a href="output/Ext.Component.getBubbleTarget.html" ext:cls="Ext.Component.getBubbleTarget">Ext.Component.getBubbleTarget</a>. The default
implementation in Ext.Component returns the Component's immediate owner. But if a known target is required, this can be overridden to
access the required target more quickly.</p>
<p>Example:</p><pre><code>Ext.override(Ext.form.Field, {
    <i>//  Add functionality to Field&#39;s initComponent to enable the change event to bubble</i>
    initComponent : Ext.form.Field.prototype.initComponent.createSequence(<b>function</b>() {
        this.enableBubble(<em>'change'</em>);
    }),

    <i>//  We know that we want Field&#39;s events to bubble directly to the FormPanel.</i>
    getBubbleTarget : <b>function</b>() {
        <b>if</b> (!this.formPanel) {
            this.formPanel = this.findParentByType(<em>'form'</em>);
        }
        <b>return</b> this.formPanel;
    }
});

<b>var</b> myForm = <b>new</b> Ext.formPanel({
    title: <em>'User Details'</em>,
    items: [{
        ...
    }],
    listeners: {
        change: <b>function</b>() {
            <i>// Title goes red <b>if</b> form has been modified.</i>
            myForm.header.setStyle(<em>'color'</em>, <em>'red'</em>);
        }
    }
});</code></pre><div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>events</code> : String/Array<div class="sub-desc">The event name to bubble, or an Array of event names.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#enableBubble" ext:member="#enableBubble" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-filter"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-filter">filter</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">String|Array&nbsp;field</span><span class="comma">,&nbsp;</span><span title="Required" class="required">String/RegExp&nbsp;value</span><span class="comma">,&nbsp;</span><span title="Optional" class="optional">[Boolean&nbsp;anyMatch]</span><span class="comma">,&nbsp;</span><span title="Optional" class="optional">[Boolean&nbsp;caseSensitive]</span><span class="comma">,&nbsp;</span><span title="Required" class="required">Boolean&nbsp;exactMatch</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">void</span><div class="mdesc"><div class="short">Filter the records by a specified property. Alternatively, pass an array of filter
options to filter by more than one...</div><div class="long">Filter the <a href="output/Ext.data.Record.html" ext:cls="Ext.data.Record">records</a> by a specified property. Alternatively, pass an array of filter
options to filter by more than one property.
Single filter example:
store.filter('name', 'Ed', true, true); //finds all records containing the substring 'Ed'
Multiple filter example:
<pre><code>store.filter([
{
property     : <em>'name'</em>,
value        : <em>'Ed'</em>,
anyMatch     : true, <i>//optional, defaults to true</i>
caseSensitive: true  <i>//optional, defaults to true</i>
},
<i>//filter functions can also be passed</i>
{
fn   : <b>function</b>(record) {
<b>return</b> record.get(<em>'age'</em>) == 24
},
scope: this
}
]);</code></pre><div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>field</code> : String|Array<div class="sub-desc">A field on your records, or an array containing multiple filter options</div></li><li><code>value</code> : String/RegExp<div class="sub-desc">Either a string that the field should begin with, or a RegExp to test
against the field.</div></li><li><code>anyMatch</code> : Boolean<div class="sub-desc">(optional) <tt>true</tt> to match any part not just the beginning</div></li><li><code>caseSensitive</code> : Boolean<div class="sub-desc">(optional) <tt>true</tt> for case sensitive comparison</div></li><li><code>exactMatch</code> : Boolean<div class="sub-desc">True to force exact match (^ and $ characters added to the regex). Defaults to false. Ignored if anyMatch is true.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#filter" ext:member="#filter" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-filterBy"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-filterBy">filterBy</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">Function&nbsp;fn</span><span class="comma">,&nbsp;</span><span title="Optional" class="optional">[Object&nbsp;scope]</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">void</span><div class="mdesc"><div class="short">Filter by a function. The specified function will be called for each
Record in this Store. If the function returns tr...</div><div class="long">Filter by a function. The specified function will be called for each
Record in this Store. If the function returns <tt>true</tt> the Record is included,
otherwise it is filtered out.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>fn</code> : Function<div class="sub-desc">The function to be called. It will be passed the following parameters:<ul>
<li><b>record</b> : Ext.data.Record<p class="sub-desc">The <a href="output/Ext.data.Record.html" ext:cls="Ext.data.Record">record</a>
to test for filtering. Access field values using <a href="output/Ext.data.Record.html#Ext.data.Record-get" ext:member="get" ext:cls="Ext.data.Record">Ext.data.Record.get</a>.</p></li>
<li><b>id</b> : Object<p class="sub-desc">The ID of the Record passed.</p></li>
</ul></div></li><li><code>scope</code> : Object<div class="sub-desc">(optional) The scope (<code>this</code> reference) in which the function is executed. Defaults to this Store.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#filterBy" ext:member="#filterBy" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-find"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-find">find</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">String&nbsp;fieldName</span><span class="comma">,&nbsp;</span><span title="Required" class="required">String/RegExp&nbsp;value</span><span class="comma">,&nbsp;</span><span title="Optional" class="optional">[Number&nbsp;startIndex]</span><span class="comma">,&nbsp;</span><span title="Optional" class="optional">[Boolean&nbsp;anyMatch]</span><span class="comma">,&nbsp;</span><span title="Optional" class="optional">[Boolean&nbsp;caseSensitive]</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">Number</span><div class="mdesc"><div class="short">Finds the index of the first matching Record in this store by a specific field value.</div><div class="long">Finds the index of the first matching Record in this store by a specific field value.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>fieldName</code> : String<div class="sub-desc">The name of the Record field to test.</div></li><li><code>value</code> : String/RegExp<div class="sub-desc">Either a string that the field value
should begin with, or a RegExp to test against the field.</div></li><li><code>startIndex</code> : Number<div class="sub-desc">(optional) The index to start searching at</div></li><li><code>anyMatch</code> : Boolean<div class="sub-desc">(optional) True to match any part of the string, not just the beginning</div></li><li><code>caseSensitive</code> : Boolean<div class="sub-desc">(optional) True for case sensitive comparison</div></li></ul><strong>Returns:</strong><ul><li><code>Number</code><div class="sub-desc">The matched index or -1</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#find" ext:member="#find" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-findBy"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-findBy">findBy</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">Function&nbsp;fn</span><span class="comma">,&nbsp;</span><span title="Optional" class="optional">[Object&nbsp;scope]</span><span class="comma">,&nbsp;</span><span title="Optional" class="optional">[Number&nbsp;startIndex]</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">Number</span><div class="mdesc"><div class="short">Find the index of the first matching Record in this Store by a function.
If the function returns true it is considere...</div><div class="long">Find the index of the first matching Record in this Store by a function.
If the function returns <tt>true</tt> it is considered a match.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>fn</code> : Function<div class="sub-desc">The function to be called. It will be passed the following parameters:<ul>
<li><b>record</b> : Ext.data.Record<p class="sub-desc">The <a href="output/Ext.data.Record.html" ext:cls="Ext.data.Record">record</a>
to test for filtering. Access field values using <a href="output/Ext.data.Record.html#Ext.data.Record-get" ext:member="get" ext:cls="Ext.data.Record">Ext.data.Record.get</a>.</p></li>
<li><b>id</b> : Object<p class="sub-desc">The ID of the Record passed.</p></li>
</ul></div></li><li><code>scope</code> : Object<div class="sub-desc">(optional) The scope (<code>this</code> reference) in which the function is executed. Defaults to this Store.</div></li><li><code>startIndex</code> : Number<div class="sub-desc">(optional) The index to start searching at</div></li></ul><strong>Returns:</strong><ul><li><code>Number</code><div class="sub-desc">The matched index or -1</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#findBy" ext:member="#findBy" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-findExact"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-findExact">findExact</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">String&nbsp;fieldName</span><span class="comma">,&nbsp;</span><span title="Required" class="required">Mixed&nbsp;value</span><span class="comma">,&nbsp;</span><span title="Optional" class="optional">[Number&nbsp;startIndex]</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">Number</span><div class="mdesc"><div class="short">Finds the index of the first matching Record in this store by a specific field value.</div><div class="long">Finds the index of the first matching Record in this store by a specific field value.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>fieldName</code> : String<div class="sub-desc">The name of the Record field to test.</div></li><li><code>value</code> : Mixed<div class="sub-desc">The value to match the field against.</div></li><li><code>startIndex</code> : Number<div class="sub-desc">(optional) The index to start searching at</div></li></ul><strong>Returns:</strong><ul><li><code>Number</code><div class="sub-desc">The matched index or -1</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#findExact" ext:member="#findExact" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-fireEvent"></a><b class="method"><a href="source/Observable.html#method-Ext.util.Observable-fireEvent">fireEvent</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">String&nbsp;eventName</span><span class="comma">,&nbsp;</span><span title="Required" class="required">Object...&nbsp;args</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">Boolean</span><div class="mdesc"><div class="short">Fires the specified event with the passed parameters (minus the event name).
An event may be set to bubble up an Obse...</div><div class="long"><p>Fires the specified event with the passed parameters (minus the event name).</p>
<p>An event may be set to bubble up an Observable parent hierarchy (See <a href="output/Ext.Component.html#Ext.Component-getBubbleTarget" ext:member="getBubbleTarget" ext:cls="Ext.Component">Ext.Component.getBubbleTarget</a>)
by calling <a href="output/Ext.util.Observable.html#Ext.util.Observable-enableBubble" ext:member="enableBubble" ext:cls="Ext.util.Observable">enableBubble</a>.</p><div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>eventName</code> : String<div class="sub-desc">The name of the event to fire.</div></li><li><code>args</code> : Object...<div class="sub-desc">Variable number of parameters are passed to handlers.</div></li></ul><strong>Returns:</strong><ul><li><code>Boolean</code><div class="sub-desc">returns false if any of the handlers return false otherwise it returns true.</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#fireEvent" ext:member="#fireEvent" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-getAt"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-getAt">getAt</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">Number&nbsp;index</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">Ext.data.Record</span><div class="mdesc"><div class="short">Get the Record at the specified index.</div><div class="long">Get the Record at the specified index.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>index</code> : Number<div class="sub-desc">The index of the Record to find.</div></li></ul><strong>Returns:</strong><ul><li><code>Ext.data.Record</code><div class="sub-desc">The Record at the passed index. Returns undefined if not found.</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#getAt" ext:member="#getAt" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-getById"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-getById">getById</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">String&nbsp;id</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">Ext.data.Record</span><div class="mdesc"><div class="short">Get the Record with the specified id.</div><div class="long">Get the Record with the specified id.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>id</code> : String<div class="sub-desc">The id of the Record to find.</div></li></ul><strong>Returns:</strong><ul><li><code>Ext.data.Record</code><div class="sub-desc">The Record with the passed id. Returns undefined if not found.</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#getById" ext:member="#getById" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-getCount"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-getCount">getCount</a></b><span class="openparen">(</span><span class="closeparen">)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">Number</span><div class="mdesc"><div class="short">Gets the number of cached records.
If using paging, this may not be the total size of the dataset. If the data object...</div><div class="long">Gets the number of cached records.
<p>If using paging, this may not be the total size of the dataset. If the data object
used by the Reader contains the dataset size, then the <a href="output/Ext.data.Store.html#Ext.data.Store-getTotalCount" ext:member="getTotalCount" ext:cls="Ext.data.Store">getTotalCount</a> function returns
the dataset size.  <b>Note</b>: see the Important note in <a href="output/Ext.data.Store.html#Ext.data.Store-load" ext:member="load" ext:cls="Ext.data.Store">load</a>.</p><div class="mdetail-params"><strong>Parameters:</strong><ul><li>None.</li></ul><strong>Returns:</strong><ul><li><code>Number</code><div class="sub-desc">The number of Records in the Store's cache.</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#getCount" ext:member="#getCount" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-getModifiedRecords"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-getModifiedRecords">getModifiedRecords</a></b><span class="openparen">(</span><span class="closeparen">)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">Ext.data.Record[]</span><div class="mdesc"><div class="short">Gets all records modified since the last commit.  Modified records are
persisted across load operations (e.g., during...</div><div class="long">Gets all <a href="output/Ext.data.Record.html" ext:cls="Ext.data.Record">records</a> modified since the last commit.  Modified records are
persisted across load operations (e.g., during paging). <b>Note</b>: deleted records are not
included.  See also <tt><a href="output/Ext.data.Store.html#Ext.data.Store-pruneModifiedRecords" ext:member="pruneModifiedRecords" ext:cls="Ext.data.Store">pruneModifiedRecords</a></tt> and
<a href="output/Ext.data.Record.html" ext:cls="Ext.data.Record">Ext.data.Record</a><tt><a href="output/Ext.data.Record.html#Ext.data.Record-markDirty" ext:member="markDirty" ext:cls="Ext.data.Record">markDirty</a>.</tt>.<div class="mdetail-params"><strong>Parameters:</strong><ul><li>None.</li></ul><strong>Returns:</strong><ul><li><code>Ext.data.Record[]</code><div class="sub-desc">An array of {@link Ext.data.Record Records} containing outstanding
modifications.  To obtain modified fields within a modified record see
{@link Ext.data.Record}&lt;tt&gt;{@link Ext.data.Record#modified modified}.&lt;/tt&gt;.</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#getModifiedRecords" ext:member="#getModifiedRecords" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-getRange"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-getRange">getRange</a></b><span class="openparen">(&nbsp;</span><span title="Optional" class="optional">[Number&nbsp;startIndex]</span><span class="comma">,&nbsp;</span><span title="Optional" class="optional">[Number&nbsp;endIndex]</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">Ext.data.Record[]</span><div class="mdesc"><div class="short">Returns a range of Records between specified indices.</div><div class="long">Returns a range of Records between specified indices.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>startIndex</code> : Number<div class="sub-desc">(optional) The starting index (defaults to 0)</div></li><li><code>endIndex</code> : Number<div class="sub-desc">(optional) The ending index (defaults to the last Record in the Store)</div></li></ul><strong>Returns:</strong><ul><li><code>Ext.data.Record[]</code><div class="sub-desc">An array of Records</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#getRange" ext:member="#getRange" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-getSortState"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-getSortState">getSortState</a></b><span class="openparen">(</span><span class="closeparen">)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">Object</span><div class="mdesc"><div class="short">Returns an object describing the current sort state of this Store.</div><div class="long">Returns an object describing the current sort state of this Store.<div class="mdetail-params"><strong>Parameters:</strong><ul><li>None.</li></ul><strong>Returns:</strong><ul><li><code>Object</code><div class="sub-desc">The sort state of the Store. An object with two properties:&lt;ul&gt;
&lt;li&gt;&lt;b&gt;field : String&lt;p class="sub-desc"&gt;The name of the field by which the Records are sorted.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;direction : String&lt;p class="sub-desc"&gt;The sort order, 'ASC' or 'DESC' (case-sensitive).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
See &lt;tt&gt;{@link #sortInfo}&lt;/tt&gt; for additional details.</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#getSortState" ext:member="#getSortState" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-getTotalCount"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-getTotalCount">getTotalCount</a></b><span class="openparen">(</span><span class="closeparen">)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">Number</span><div class="mdesc"><div class="short">Gets the total number of records in the dataset as returned by the server.
If using paging, for this to be accurate, ...</div><div class="long">Gets the total number of records in the dataset as returned by the server.
<p>If using paging, for this to be accurate, the data object used by the <a href="output/Ext.data.Store.html#Ext.data.Store-reader" ext:member="reader" ext:cls="Ext.data.Store">Reader</a>
must contain the dataset size. For remote data sources, the value for this property
(<tt>totalProperty</tt> for <a href="output/Ext.data.JsonReader.html" ext:cls="Ext.data.JsonReader">JsonReader</a>,
<tt>totalRecords</tt> for <a href="output/Ext.data.XmlReader.html" ext:cls="Ext.data.XmlReader">XmlReader</a>) shall be returned by a query on the server.
<b>Note</b>: see the Important note in <a href="output/Ext.data.Store.html#Ext.data.Store-load" ext:member="load" ext:cls="Ext.data.Store">load</a>.</p><div class="mdetail-params"><strong>Parameters:</strong><ul><li>None.</li></ul><strong>Returns:</strong><ul><li><code>Number</code><div class="sub-desc">The number of Records as specified in the data object passed to the Reader
by the Proxy.
&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: this value is not updated when changing the contents of the Store locally.&lt;/p&gt;</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#getTotalCount" ext:member="#getTotalCount" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-hasListener"></a><b class="method"><a href="source/Observable.html#method-Ext.util.Observable-hasListener">hasListener</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">String&nbsp;eventName</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">Boolean</span><div class="mdesc"><div class="short">Checks to see if this object has any listeners for a specified event</div><div class="long">Checks to see if this object has any listeners for a specified event<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>eventName</code> : String<div class="sub-desc">The name of the event to check for</div></li></ul><strong>Returns:</strong><ul><li><code>Boolean</code><div class="sub-desc">True if the event is being listened for, else false</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#hasListener" ext:member="#hasListener" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-indexOf"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-indexOf">indexOf</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">Ext.data.Record&nbsp;record</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">Number</span><div class="mdesc"><div class="short">Get the index within the cache of the passed Record.</div><div class="long">Get the index within the cache of the passed Record.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>record</code> : Ext.data.Record<div class="sub-desc">The Ext.data.Record object to find.</div></li></ul><strong>Returns:</strong><ul><li><code>Number</code><div class="sub-desc">The index of the passed Record. Returns -1 if not found.</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#indexOf" ext:member="#indexOf" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-indexOfId"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-indexOfId">indexOfId</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">String&nbsp;id</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">Number</span><div class="mdesc"><div class="short">Get the index within the cache of the Record with the passed id.</div><div class="long">Get the index within the cache of the Record with the passed id.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>id</code> : String<div class="sub-desc">The id of the Record to find.</div></li></ul><strong>Returns:</strong><ul><li><code>Number</code><div class="sub-desc">The index of the Record. Returns -1 if not found.</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#indexOfId" ext:member="#indexOfId" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-insert"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-insert">insert</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">Number&nbsp;index</span><span class="comma">,&nbsp;</span><span title="Required" class="required">Ext.data.Record[]&nbsp;records</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">void</span><div class="mdesc"><div class="short">Inserts Records into the Store at the given index and fires the add event.
See also add and addSorted.</div><div class="long">Inserts Records into the Store at the given index and fires the <a href="output/Ext.data.Store.html#Ext.data.Store-add" ext:member="add" ext:cls="Ext.data.Store">add</a> event.
See also <code><a href="output/Ext.data.Store.html#Ext.data.Store-add" ext:member="add" ext:cls="Ext.data.Store">add</a></code> and <code><a href="output/Ext.data.Store.html#Ext.data.Store-addSorted" ext:member="addSorted" ext:cls="Ext.data.Store">addSorted</a></code>.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>index</code> : Number<div class="sub-desc">The start index at which to insert the passed Records.</div></li><li><code>records</code> : Ext.data.Record[]<div class="sub-desc">An Array of Ext.data.Record objects to add to the cache.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#insert" ext:member="#insert" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-isFiltered"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-isFiltered">isFiltered</a></b><span class="openparen">(</span><span class="closeparen">)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">Boolean</span><div class="mdesc"><div class="short">Returns true if this store is currently filtered</div><div class="long">Returns true if this store is currently filtered<div class="mdetail-params"><strong>Parameters:</strong><ul><li>None.</li></ul><strong>Returns:</strong><ul><li><code>Boolean</code><div class="sub-desc"></div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#isFiltered" ext:member="#isFiltered" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-load"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-load">load</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">Object&nbsp;options</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">Boolean</span><div class="mdesc"><div class="short">Loads the Record cache from the configured proxy using the configured reader.
Notes:&lt;div class="mdetail-params"&gt;
Impo...</div><div class="long"><p>Loads the Record cache from the configured <tt><a href="output/Ext.data.Store.html#Ext.data.Store-proxy" ext:member="proxy" ext:cls="Ext.data.Store">proxy</a></tt> using the configured <tt><a href="output/Ext.data.Store.html#Ext.data.Store-reader" ext:member="reader" ext:cls="Ext.data.Store">reader</a></tt>.</p>
<br><p>Notes:</p><div class="mdetail-params"><ul>
<li><b><u>Important</u></b>: loading is asynchronous! This call will return before the new data has been
loaded. To perform any post-processing where information from the load call is required, specify
the <tt>callback</tt> function to be called, or use a <a href="output/Ext.util.Observable.html#Ext.util.Observable-listeners" ext:member="listeners" ext:cls="Ext.util.Observable">a 'load' event handler</a>.</li>
<li>If using <a href="output/Ext.PagingToolbar.html" ext:cls="Ext.PagingToolbar">remote paging</a>, the first load call must specify the <tt>start</tt> and <tt>limit</tt>
properties in the <code>options.params</code> property to establish the initial position within the
dataset, and the number of Records to cache on each read from the Proxy.</li>
<li>If using <a href="output/Ext.data.Store.html#Ext.data.Store-remoteSort" ext:member="remoteSort" ext:cls="Ext.data.Store">remote sorting</a>, the configured <code><a href="output/Ext.data.Store.html#Ext.data.Store-sortInfo" ext:member="sortInfo" ext:cls="Ext.data.Store">sortInfo</a></code>
will be automatically included with the posted parameters according to the specified
<code><a href="output/Ext.data.Store.html#Ext.data.Store-paramNames" ext:member="paramNames" ext:cls="Ext.data.Store">paramNames</a></code>.</li>
</ul></div><div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>options</code> : Object<div class="sub-desc">An object containing properties which control loading options:<ul>
<li><b><tt>params</tt></b> :Object<div class="sub-desc"><p>An object containing properties to pass as HTTP
parameters to a remote data source. <b>Note</b>: <code>params</code> will override any
<code><a href="output/Ext.data.Store.html#Ext.data.Store-baseParams" ext:member="baseParams" ext:cls="Ext.data.Store">baseParams</a></code> of the same name.</p>
<p>Parameters are encoded as standard HTTP parameters using <a href="output/Ext.html#Ext-urlEncode" ext:member="urlEncode" ext:cls="Ext">Ext.urlEncode</a>.</p></div></li>
<li><b>callback</b> : Function<div class="sub-desc"><p>A function to be called after the Records
have been loaded. The callback is called after the load event is fired, and is passed the following arguments:<ul>
<li>r : Ext.data.Record[] An Array of Records loaded.</li>
<li>options : Options object from the load call.</li>
<li>success : Boolean success indicator.</li></ul></p></div></li>
<li><b>scope</b> : Object<div class="sub-desc"><p>Scope with which to call the callback (defaults
to the Store object)</p></div></li>
<li><b>add</b> : Boolean<div class="sub-desc"><p>Indicator to append loaded records rather than
replace the current cache.  <b>Note</b>: see note for <tt><a href="output/Ext.data.Store.html#Ext.data.Store-loadData" ext:member="loadData" ext:cls="Ext.data.Store">loadData</a></tt></p></div></li>
</ul></div></li></ul><strong>Returns:</strong><ul><li><code>Boolean</code><div class="sub-desc">If the &lt;i&gt;developer&lt;/i&gt; provided &lt;tt&gt;{@link #beforeload}&lt;/tt&gt; event handler returns
&lt;tt&gt;false&lt;/tt&gt;, the load call will abort and will return &lt;tt&gt;false&lt;/tt&gt;; otherwise will return &lt;tt&gt;true&lt;/tt&gt;.</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#load" ext:member="#load" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-loadData"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-loadData">loadData</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">Object&nbsp;data</span><span class="comma">,&nbsp;</span><span title="Optional" class="optional">[Boolean&nbsp;append]</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">void</span><div class="mdesc"><div class="short">Loads data from a passed data block and fires the load event. A Reader
which understands the format of the data must ...</div><div class="long">Loads data from a passed data block and fires the <a href="output/Ext.data.Store.html#Ext.data.Store-load" ext:member="load" ext:cls="Ext.data.Store">load</a> event. A <a href="output/Ext.data.Reader.html" ext:cls="Ext.data.Reader">Reader</a>
which understands the format of the data must have been configured in the constructor.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>data</code> : Object<div class="sub-desc">The data block from which to read the Records.  The format of the data expected
is dependent on the type of <a href="output/Ext.data.Reader.html" ext:cls="Ext.data.Reader">Reader</a> that is configured and should correspond to
that <a href="output/Ext.data.Reader.html" ext:cls="Ext.data.Reader">Reader</a>'s <tt><a href="output/Ext.data.Reader.html#Ext.data.Reader-readRecords" ext:member="readRecords" ext:cls="Ext.data.Reader">Ext.data.Reader.readRecords</a></tt> parameter.</div></li><li><code>append</code> : Boolean<div class="sub-desc">(Optional) <tt>true</tt> to append the new Records rather the default to replace
the existing cache.
<b>Note</b>: that Records in a Store are keyed by their <a href="output/Ext.data.Record.html#Ext.data.Record-id" ext:member="id" ext:cls="Ext.data.Record">id</a>, so added Records
with ids which are already present in the Store will <i>replace</i> existing Records. Only Records with
new, unique ids will be added.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#loadData" ext:member="#loadData" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-multiSort"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-multiSort">multiSort</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">Array&nbsp;sorters</span><span class="comma">,&nbsp;</span><span title="Required" class="required">String&nbsp;direction</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">void</span><div class="mdesc"><div class="short">Sorts the contents of this store by multiple field/direction sorters. This is called internally by sort
and would not...</div><div class="long">Sorts the contents of this store by multiple field/direction sorters. This is called internally by <a href="output/sort.html" ext:cls="sort">sort</a>
and would not usually be called manually.
Multi sorting only currently applies to local datasets - multiple sort data is not currently sent to a proxy
if remoteSort is used.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>sorters</code> : Array<div class="sub-desc">Array of sorter objects (field and direction)</div></li><li><code>direction</code> : String<div class="sub-desc">Overall direction to sort the ordered results by (defaults to "ASC")</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#multiSort" ext:member="#multiSort" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-on"></a><b class="method"><a href="source/Observable.html#method-Ext.util.Observable-on">on</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">String&nbsp;eventName</span><span class="comma">,&nbsp;</span><span title="Required" class="required">Function&nbsp;handler</span><span class="comma">,&nbsp;</span><span title="Optional" class="optional">[Object&nbsp;scope]</span><span class="comma">,&nbsp;</span><span title="Optional" class="optional">[Object&nbsp;options]</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">void</span><div class="mdesc"><div class="short">Appends an event handler to this object (shorthand for addListener.)</div><div class="long">Appends an event handler to this object (shorthand for <a href="output/Ext.util.Observable.html#Ext.util.Observable-addListener" ext:member="addListener" ext:cls="Ext.util.Observable">addListener</a>.)<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>eventName</code> : String<div class="sub-desc">The type of event to listen for</div></li><li><code>handler</code> : Function<div class="sub-desc">The method the event invokes</div></li><li><code>scope</code> : Object<div class="sub-desc">(optional) The scope (<code><b>this</b></code> reference) in which the handler function is executed.
<b>If omitted, defaults to the object which fired the event.</b></div></li><li><code>options</code> : Object<div class="sub-desc">(optional) An object containing handler configuration.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#on" ext:member="#on" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-purgeListeners"></a><b class="method"><a href="source/Observable.html#method-Ext.util.Observable-purgeListeners">purgeListeners</a></b><span class="openparen">(</span><span class="closeparen">)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">void</span><div class="mdesc"><div class="short">Removes all listeners for this object</div><div class="long">Removes all listeners for this object<div class="mdetail-params"><strong>Parameters:</strong><ul><li>None.</li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#purgeListeners" ext:member="#purgeListeners" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-query"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-query">query</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">String&nbsp;field</span><span class="comma">,&nbsp;</span><span title="Required" class="required">String/RegExp&nbsp;value</span><span class="comma">,&nbsp;</span><span title="Optional" class="optional">[Boolean&nbsp;anyMatch]</span><span class="comma">,&nbsp;</span><span title="Optional" class="optional">[Boolean&nbsp;caseSensitive]</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">MixedCollection</span><div class="mdesc"><div class="short">Query the records by a specified property.</div><div class="long">Query the records by a specified property.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>field</code> : String<div class="sub-desc">A field on your records</div></li><li><code>value</code> : String/RegExp<div class="sub-desc">Either a string that the field
should begin with, or a RegExp to test against the field.</div></li><li><code>anyMatch</code> : Boolean<div class="sub-desc">(optional) True to match any part not just the beginning</div></li><li><code>caseSensitive</code> : Boolean<div class="sub-desc">(optional) True for case sensitive comparison</div></li></ul><strong>Returns:</strong><ul><li><code>MixedCollection</code><div class="sub-desc">Returns an Ext.util.MixedCollection of the matched records</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#query" ext:member="#query" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-queryBy"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-queryBy">queryBy</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">Function&nbsp;fn</span><span class="comma">,&nbsp;</span><span title="Optional" class="optional">[Object&nbsp;scope]</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">MixedCollection</span><div class="mdesc"><div class="short">Query the cached records in this Store using a filtering function. The specified function
will be called with each re...</div><div class="long">Query the cached records in this Store using a filtering function. The specified function
will be called with each record in this Store. If the function returns <tt>true</tt> the record is
included in the results.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>fn</code> : Function<div class="sub-desc">The function to be called. It will be passed the following parameters:<ul>
<li><b>record</b> : Ext.data.Record<p class="sub-desc">The <a href="output/Ext.data.Record.html" ext:cls="Ext.data.Record">record</a>
to test for filtering. Access field values using <a href="output/Ext.data.Record.html#Ext.data.Record-get" ext:member="get" ext:cls="Ext.data.Record">Ext.data.Record.get</a>.</p></li>
<li><b>id</b> : Object<p class="sub-desc">The ID of the Record passed.</p></li>
</ul></div></li><li><code>scope</code> : Object<div class="sub-desc">(optional) The scope (<code>this</code> reference) in which the function is executed. Defaults to this Store.</div></li></ul><strong>Returns:</strong><ul><li><code>MixedCollection</code><div class="sub-desc">Returns an Ext.util.MixedCollection of the matched records</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#queryBy" ext:member="#queryBy" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-rejectChanges"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-rejectChanges">rejectChanges</a></b><span class="openparen">(</span><span class="closeparen">)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">void</span><div class="mdesc"><div class="short">Reject outstanding changes on all modified records.</div><div class="long"><a href="output/Ext.data.Record.html#Ext.data.Record-reject" ext:member="reject" ext:cls="Ext.data.Record">Reject</a> outstanding changes on all <a href="output/Ext.data.Store.html#Ext.data.Store-getModifiedRecords" ext:member="getModifiedRecords" ext:cls="Ext.data.Store">modified records</a>.<div class="mdetail-params"><strong>Parameters:</strong><ul><li>None.</li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#rejectChanges" ext:member="#rejectChanges" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-relayEvents"></a><b class="method"><a href="source/Observable-more.html#method-Ext.util.Observable-relayEvents">relayEvents</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">Object&nbsp;o</span><span class="comma">,&nbsp;</span><span title="Required" class="required">Array&nbsp;events</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">void</span><div class="mdesc"><div class="short">Relays selected events from the specified Observable as if the events were fired by this.</div><div class="long">Relays selected events from the specified Observable as if the events were fired by <tt><b>this</b></tt>.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>o</code> : Object<div class="sub-desc">The Observable whose events this object is to relay.</div></li><li><code>events</code> : Array<div class="sub-desc">Array of event names to relay.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#relayEvents" ext:member="#relayEvents" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-reload"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-reload">reload</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">Object&nbsp;options</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">void</span><div class="mdesc"><div class="short">Reloads the Record cache from the configured Proxy using the configured
Reader and the options from the last load ope...</div><div class="long"><p>Reloads the Record cache from the configured Proxy using the configured
<a href="output/Ext.data.Reader.html" ext:cls="Ext.data.Reader">Reader</a> and the options from the last load operation
performed.</p>
<p><b>Note</b>: see the Important note in <a href="output/Ext.data.Store.html#Ext.data.Store-load" ext:member="load" ext:cls="Ext.data.Store">load</a>.</p><div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>options</code> : Object<div class="sub-desc"><p>(optional) An <tt>Object</tt> containing
<a href="output/Ext.data.Store.html#Ext.data.Store-load" ext:member="load" ext:cls="Ext.data.Store">loading options</a> which may override the <a href="output/Ext.data.Store.html#Ext.data.Store-lastOptions" ext:member="lastOptions" ext:cls="Ext.data.Store">options</a>
used in the last <a href="output/Ext.data.Store.html#Ext.data.Store-load" ext:member="load" ext:cls="Ext.data.Store">load</a> operation. See <a href="output/Ext.data.Store.html#Ext.data.Store-load" ext:member="load" ext:cls="Ext.data.Store">load</a> for details
(defaults to <tt>null</tt>, in which case the <a href="output/Ext.data.Store.html#Ext.data.Store-lastOptions" ext:member="lastOptions" ext:cls="Ext.data.Store">lastOptions</a> are
used).</p>
<br><p>To add new params to the existing params:</p><pre><code>lastOptions = myStore.lastOptions;
Ext.apply(lastOptions.params, {
    myNewParam: true
});
myStore.reload(lastOptions);</code></pre></div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#reload" ext:member="#reload" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-remove"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-remove">remove</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">Ext.data.Record/Ext.data.Record[]&nbsp;record</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">void</span><div class="mdesc"><div class="short">Remove Records from the Store and fires the remove event.</div><div class="long">Remove Records from the Store and fires the <a href="output/Ext.data.Store.html#Ext.data.Store-remove" ext:member="remove" ext:cls="Ext.data.Store">remove</a> event.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>record</code> : Ext.data.Record/Ext.data.Record[]<div class="sub-desc">The record object or array of records to remove from the cache.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#remove" ext:member="#remove" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-removeAll"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-removeAll">removeAll</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">Boolean&nbsp;silent</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">void</span><div class="mdesc"><div class="short">Remove all Records from the Store and fires the clear event.</div><div class="long">Remove all Records from the Store and fires the <a href="output/Ext.data.Store.html#Ext.data.Store-clear" ext:member="clear" ext:cls="Ext.data.Store">clear</a> event.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>silent</code> : Boolean<div class="sub-desc">[false] Defaults to <tt>false</tt>.  Set <tt>true</tt> to not fire clear event.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#removeAll" ext:member="#removeAll" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-removeAt"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-removeAt">removeAt</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">Number&nbsp;index</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">void</span><div class="mdesc"><div class="short">Remove a Record from the Store at the specified index. Fires the remove event.</div><div class="long">Remove a Record from the Store at the specified index. Fires the <a href="output/Ext.data.Store.html#Ext.data.Store-remove" ext:member="remove" ext:cls="Ext.data.Store">remove</a> event.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>index</code> : Number<div class="sub-desc">The index of the record to remove.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#removeAt" ext:member="#removeAt" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-removeListener"></a><b class="method"><a href="source/Observable.html#method-Ext.util.Observable-removeListener">removeListener</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">String&nbsp;eventName</span><span class="comma">,&nbsp;</span><span title="Required" class="required">Function&nbsp;handler</span><span class="comma">,&nbsp;</span><span title="Optional" class="optional">[Object&nbsp;scope]</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">void</span><div class="mdesc"><div class="short">Removes an event handler.</div><div class="long">Removes an event handler.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>eventName</code> : String<div class="sub-desc">The type of event the handler was associated with.</div></li><li><code>handler</code> : Function<div class="sub-desc">The handler to remove. <b>This must be a reference to the function passed into the <a href="output/Ext.util.Observable.html#Ext.util.Observable-addListener" ext:member="addListener" ext:cls="Ext.util.Observable">addListener</a> call.</b></div></li><li><code>scope</code> : Object<div class="sub-desc">(optional) The scope originally specified for the handler.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#removeListener" ext:member="#removeListener" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-resumeEvents"></a><b class="method"><a href="source/Observable.html#method-Ext.util.Observable-resumeEvents">resumeEvents</a></b><span class="openparen">(</span><span class="closeparen">)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">void</span><div class="mdesc"><div class="short">Resume firing events. (see suspendEvents)
If events were suspended using the queueSuspended parameter, then all
event...</div><div class="long">Resume firing events. (see <a href="output/Ext.util.Observable.html#Ext.util.Observable-suspendEvents" ext:member="suspendEvents" ext:cls="Ext.util.Observable">suspendEvents</a>)
If events were suspended using the <tt><b>queueSuspended</b></tt> parameter, then all
events fired during event suspension will be sent to any listeners now.<div class="mdetail-params"><strong>Parameters:</strong><ul><li>None.</li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#resumeEvents" ext:member="#resumeEvents" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-save"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-save">save</a></b><span class="openparen">(</span><span class="closeparen">)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">Number</span><div class="mdesc"><div class="short">Saves all pending changes to the store.  If the commensurate Ext.data.Api.actions action is not configured, then
the ...</div><div class="long">Saves all pending changes to the store.  If the commensurate Ext.data.Api.actions action is not configured, then
the configured <code><a href="output/Ext.data.Store.html#Ext.data.Store-url" ext:member="url" ext:cls="Ext.data.Store">url</a></code> will be used.
<pre>
change            url
---------------   --------------------
removed records   Ext.data.Api.actions.destroy
phantom records   Ext.data.Api.actions.create
<a href="output/Ext.data.Store.html#Ext.data.Store-getModifiedRecords" ext:member="getModifiedRecords" ext:cls="Ext.data.Store">modified records</a>  Ext.data.Api.actions.update
</pre><div class="mdetail-params"><strong>Parameters:</strong><ul><li>None.</li></ul><strong>Returns:</strong><ul><li><code>Number</code><div class="sub-desc">batch Returns a number to uniquely identify the "batch" of saves occurring. -1 will be returned
if there are no items to save or the save was cancelled.</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#save" ext:member="#save" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-setBaseParam"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-setBaseParam">setBaseParam</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">String&nbsp;name</span><span class="comma">,&nbsp;</span><span title="Required" class="required">Mixed&nbsp;value</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">void</span><div class="mdesc"><div class="short">Set the value for a property name in this store's baseParams.  Usage:myStore.setBaseParam('foo', {bar:3});</div><div class="long">Set the value for a property name in this store's <a href="output/Ext.data.Store.html#Ext.data.Store-baseParams" ext:member="baseParams" ext:cls="Ext.data.Store">baseParams</a>.  Usage:</p><pre><code>myStore.setBaseParam(<em>'foo'</em>, {bar:3});</code></pre><div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>name</code> : String<div class="sub-desc">Name of the property to assign</div></li><li><code>value</code> : Mixed<div class="sub-desc">Value to assign the <tt>name</tt>d property</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#setBaseParam" ext:member="#setBaseParam" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-setDefaultSort"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-setDefaultSort">setDefaultSort</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">String&nbsp;fieldName</span><span class="comma">,&nbsp;</span><span title="Optional" class="optional">[String&nbsp;dir]</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">void</span><div class="mdesc"><div class="short">Sets the default sort column and order to be used by the next load operation.</div><div class="long">Sets the default sort column and order to be used by the next <a href="output/Ext.data.Store.html#Ext.data.Store-load" ext:member="load" ext:cls="Ext.data.Store">load</a> operation.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>fieldName</code> : String<div class="sub-desc">The name of the field to sort by.</div></li><li><code>dir</code> : String<div class="sub-desc">(optional) The sort order, 'ASC' or 'DESC' (case-sensitive, defaults to <tt>'ASC'</tt>)</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#setDefaultSort" ext:member="#setDefaultSort" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-singleSort"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-singleSort">singleSort</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">String&nbsp;fieldName</span><span class="comma">,&nbsp;</span><span title="Optional" class="optional">[String&nbsp;dir]</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">void</span><div class="mdesc"><div class="short">Sorts the store contents by a single field and direction. This is called internally by sort and would
not usually be ...</div><div class="long">Sorts the store contents by a single field and direction. This is called internally by <a href="output/sort.html" ext:cls="sort">sort</a> and would
not usually be called manually<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>fieldName</code> : String<div class="sub-desc">The name of the field to sort by.</div></li><li><code>dir</code> : String<div class="sub-desc">(optional) The sort order, 'ASC' or 'DESC' (case-sensitive, defaults to <tt>'ASC'</tt>)</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#singleSort" ext:member="#singleSort" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-sort"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-sort">sort</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">String/Array&nbsp;fieldName</span><span class="comma">,&nbsp;</span><span title="Optional" class="optional">[String&nbsp;dir]</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">void</span><div class="mdesc"><div class="short">Sort the Records.
If remote sorting is used, the sort is performed on the server, and the cache is reloaded. If local...</div><div class="long">Sort the Records.
If remote sorting is used, the sort is performed on the server, and the cache is reloaded. If local
sorting is used, the cache is sorted internally. See also <a href="output/Ext.data.Store.html#Ext.data.Store-remoteSort" ext:member="remoteSort" ext:cls="Ext.data.Store">remoteSort</a> and <a href="output/Ext.data.Store.html#Ext.data.Store-paramNames" ext:member="paramNames" ext:cls="Ext.data.Store">paramNames</a>.
This function accepts two call signatures - pass in a field name as the first argument to sort on a single
field, or pass in an array of sort configuration objects to sort by multiple fields.
Single sort example:
store.sort('name', 'ASC');
Multi sort example:
store.sort([
{
field    : 'name',
direction: 'ASC'
},
{
field    : 'salary',
direction: 'DESC'
}
], 'ASC');
In this second form, the sort configs are applied in order, with later sorters sorting within earlier sorters' results.
For example, if two records with the same name are present they will also be sorted by salary if given the sort configs
above. Any number of sort configs can be added.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>fieldName</code> : String/Array<div class="sub-desc">The name of the field to sort by, or an array of ordered sort configs</div></li><li><code>dir</code> : String<div class="sub-desc">(optional) The sort order, 'ASC' or 'DESC' (case-sensitive, defaults to <tt>'ASC'</tt>)</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#sort" ext:member="#sort" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-sum"></a><b class="method"><a href="source/Store.html#method-Ext.data.Store-sum">sum</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">String&nbsp;property</span><span class="comma">,&nbsp;</span><span title="Optional" class="optional">[Number&nbsp;start]</span><span class="comma">,&nbsp;</span><span title="Optional" class="optional">[Number&nbsp;end]</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">Number</span><div class="mdesc"><div class="short">Sums the value of property for each record between start
and end and returns the result.</div><div class="long">Sums the value of <tt>property</tt> for each <a href="output/Ext.data.Record.html" ext:cls="Ext.data.Record">record</a> between <tt>start</tt>
and <tt>end</tt> and returns the result.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>property</code> : String<div class="sub-desc">A field in each record</div></li><li><code>start</code> : Number<div class="sub-desc">(optional) The record index to start at (defaults to <tt>0</tt>)</div></li><li><code>end</code> : Number<div class="sub-desc">(optional) The last record index to include (defaults to length - 1)</div></li></ul><strong>Returns:</strong><ul><li><code>Number</code><div class="sub-desc">The sum</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#sum" ext:member="#sum" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-suspendEvents"></a><b class="method"><a href="source/Observable.html#method-Ext.util.Observable-suspendEvents">suspendEvents</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">Boolean&nbsp;queueSuspended</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">void</span><div class="mdesc"><div class="short">Suspend the firing of all events. (see resumeEvents)</div><div class="long">Suspend the firing of all events. (see <a href="output/Ext.util.Observable.html#Ext.util.Observable-resumeEvents" ext:member="resumeEvents" ext:cls="Ext.util.Observable">resumeEvents</a>)<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>queueSuspended</code> : Boolean<div class="sub-desc">Pass as true to queue up suspended events to be fired
after the <a href="output/Ext.util.Observable.html#Ext.util.Observable-resumeEvents" ext:member="resumeEvents" ext:cls="Ext.util.Observable">resumeEvents</a> call instead of discarding all suspended events;</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#suspendEvents" ext:member="#suspendEvents" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-un"></a><b class="method"><a href="source/Observable.html#method-Ext.util.Observable-un">un</a></b><span class="openparen">(&nbsp;</span><span title="Required" class="required">String&nbsp;eventName</span><span class="comma">,&nbsp;</span><span title="Required" class="required">Function&nbsp;handler</span><span class="comma">,&nbsp;</span><span title="Optional" class="optional">[Object&nbsp;scope]</span><span class="closeparen">&nbsp;)</span><span class="colon">&nbsp;:&nbsp;</span><span class="return">void</span><div class="mdesc"><div class="short">Removes an event handler (shorthand for removeListener.)</div><div class="long">Removes an event handler (shorthand for <a href="output/Ext.util.Observable.html#Ext.util.Observable-removeListener" ext:member="removeListener" ext:cls="Ext.util.Observable">removeListener</a>.)<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>eventName</code> : String<div class="sub-desc">The type of event the handler was associated with.</div></li><li><code>handler</code> : Function<div class="sub-desc">The handler to remove. <b>This must be a reference to the function passed into the <a href="output/Ext.util.Observable.html#Ext.util.Observable-addListener" ext:member="addListener" ext:cls="Ext.util.Observable">addListener</a> call.</b></div></li><li><code>scope</code> : Object<div class="sub-desc">(optional) The scope originally specified for the handler.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#un" ext:member="#un" ext:cls="Ext.util.Observable">Observable</a></td></tr></tbody></table><a id="Ext.data.ArrayStore-events"></a><h2>Public Events</h2><table cellspacing="0" class="member-table"><tbody><tr><th colspan="2" class="sig-header">Event</th><th class="msource-header">Defined By</th></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-add"></a><b class="event"><a href="source/Store.html#event-Ext.data.Store-add">add</a></b><span class="colon">&nbsp;:&nbsp;</span><span class="openparen">(&nbsp;</span><span title="Required" class="required">Store&nbsp;this</span><span class="comma">,&nbsp;</span><span title="Required" class="required">Ext.data.Record[]&nbsp;records</span><span class="comma">,&nbsp;</span><span title="Required" class="required">Number&nbsp;index</span><span class="closeparen">&nbsp;)</span><span>&nbsp;</span><div class="mdesc"><div class="short">Fires when Records have been added to the Store</div><div class="long">Fires when Records have been <a href="output/Ext.data.Store.html#Ext.data.Store-add" ext:member="add" ext:cls="Ext.data.Store">add</a>ed to the Store<div class="mdetail-params"><strong style="font-weight: normal;">Listeners will be called with the following arguments:</strong><ul><li><code>this</code> : Store<div class="sub-desc"></div></li><li><code>records</code> : Ext.data.Record[]<div class="sub-desc">The array of Records added</div></li><li><code>index</code> : Number<div class="sub-desc">The index at which the record(s) were added</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#add" ext:member="#add" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-beforeload"></a><b class="event"><a href="source/Store.html#event-Ext.data.Store-beforeload">beforeload</a></b><span class="colon">&nbsp;:&nbsp;</span><span class="openparen">(&nbsp;</span><span title="Required" class="required">Store&nbsp;this</span><span class="comma">,&nbsp;</span><span title="Required" class="required">Object&nbsp;options</span><span class="closeparen">&nbsp;)</span><span>&nbsp;</span><div class="mdesc"><div class="short">Fires before a request is made for a new data object.  If the beforeload handler returns
false the load action will b...</div><div class="long">Fires before a request is made for a new data object.  If the beforeload handler returns
<tt>false</tt> the <a href="output/Ext.data.Store.html#Ext.data.Store-load" ext:member="load" ext:cls="Ext.data.Store">load</a> action will be canceled.<div class="mdetail-params"><strong style="font-weight: normal;">Listeners will be called with the following arguments:</strong><ul><li><code>this</code> : Store<div class="sub-desc"></div></li><li><code>options</code> : Object<div class="sub-desc">The loading options that were specified (see <a href="output/Ext.data.Store.html#Ext.data.Store-load" ext:member="load" ext:cls="Ext.data.Store">load</a> for details)</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#beforeload" ext:member="#beforeload" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-beforesave"></a><b class="event"><a href="source/Store.html#event-Ext.data.Store-beforesave">beforesave</a></b><span class="colon">&nbsp;:&nbsp;</span><span class="openparen">(&nbsp;</span><span title="Required" class="required">Ext.data.Store&nbsp;store</span><span class="comma">,&nbsp;</span><span title="Required" class="required">Object&nbsp;data</span><span class="closeparen">&nbsp;)</span><span>&nbsp;</span><div class="mdesc"><div class="short">Fires before a save action is called. A save encompasses destroying records, updating records and creating records.</div><div class="long">Fires before a save action is called. A save encompasses destroying records, updating records and creating records.<div class="mdetail-params"><strong style="font-weight: normal;">Listeners will be called with the following arguments:</strong><ul><li><code>store</code> : Ext.data.Store<div class="sub-desc"></div></li><li><code>data</code> : Object<div class="sub-desc">An object containing the data that is to be saved. The object will contain a key for each appropriate action,
with an array of records for each action.</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#beforesave" ext:member="#beforesave" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-beforewrite"></a><b class="event"><a href="source/Store.html#event-Ext.data.Store-beforewrite">beforewrite</a></b><span class="colon">&nbsp;:&nbsp;</span><span class="openparen">(&nbsp;</span><span title="Required" class="required">Ext.data.Store&nbsp;store</span><span class="comma">,&nbsp;</span><span title="Required" class="required">String&nbsp;action</span><span class="comma">,&nbsp;</span><span title="Required" class="required">Record/Record[]&nbsp;rs</span><span class="comma">,&nbsp;</span><span title="Required" class="required">Object&nbsp;options</span><span class="comma">,&nbsp;</span><span title="Required" class="required">Object&nbsp;arg</span><span class="closeparen">&nbsp;)</span><span>&nbsp;</span><div class="mdesc"><div class="short"></div><div class="long"><div class="mdetail-params"><strong style="font-weight: normal;">Listeners will be called with the following arguments:</strong><ul><li><code>store</code> : Ext.data.Store<div class="sub-desc"></div></li><li><code>action</code> : String<div class="sub-desc">[Ext.data.Api.actions.create|update|destroy]</div></li><li><code>rs</code> : Record/Record[]<div class="sub-desc">The Record(s) being written.</div></li><li><code>options</code> : Object<div class="sub-desc">The loading options that were specified. Edit <code>options.params</code> to add Http parameters to the request.  (see <a href="output/Ext.data.Store.html#Ext.data.Store-save" ext:member="save" ext:cls="Ext.data.Store">save</a> for details)</div></li><li><code>arg</code> : Object<div class="sub-desc">The callback's arg object passed to the <a href="output/Ext.data.Store.html#Ext.data.Store-request" ext:member="request" ext:cls="Ext.data.Store">request</a> function</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#beforewrite" ext:member="#beforewrite" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-clear"></a><b class="event"><a href="source/Store.html#event-Ext.data.Store-clear">clear</a></b><span class="colon">&nbsp;:&nbsp;</span><span class="openparen">(&nbsp;</span><span title="Required" class="required">Store&nbsp;this</span><span class="comma">,&nbsp;</span><span title="Required" class="required">Record[]&nbsp;records</span><span class="closeparen">&nbsp;)</span><span>&nbsp;</span><div class="mdesc"><div class="short">Fires when the data cache has been cleared.</div><div class="long">Fires when the data cache has been cleared.<div class="mdetail-params"><strong style="font-weight: normal;">Listeners will be called with the following arguments:</strong><ul><li><code>this</code> : Store<div class="sub-desc"></div></li><li><code>records</code> : Record[]<div class="sub-desc">The records that were cleared.</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#clear" ext:member="#clear" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-datachanged"></a><b class="event"><a href="source/Store.html#event-Ext.data.Store-datachanged">datachanged</a></b><span class="colon">&nbsp;:&nbsp;</span><span class="openparen">(&nbsp;</span><span title="Required" class="required">Store&nbsp;this</span><span class="closeparen">&nbsp;)</span><span>&nbsp;</span><div class="mdesc"><div class="short">Fires when the data cache has changed in a bulk manner (e.g., it has been sorted, filtered, etc.) and a
widget that i...</div><div class="long">Fires when the data cache has changed in a bulk manner (e.g., it has been sorted, filtered, etc.) and a
widget that is using this Store as a Record cache should refresh its view.<div class="mdetail-params"><strong style="font-weight: normal;">Listeners will be called with the following arguments:</strong><ul><li><code>this</code> : Store<div class="sub-desc"></div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#datachanged" ext:member="#datachanged" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-exception"></a><b class="event"><a href="source/Store.html#event-Ext.data.Store-exception">exception</a></b><span class="colon">&nbsp;:&nbsp;</span><span class="openparen">(&nbsp;</span><span title="Required" class="required">misc&nbsp;misc</span><span class="closeparen">&nbsp;)</span><span>&nbsp;</span><div class="mdesc"><div class="short">Fires if an exception occurs in the Proxy during a remote request.
This event is relayed through the corresponding Ex...</div><div class="long"><p>Fires if an exception occurs in the Proxy during a remote request.
This event is relayed through the corresponding <a href="output/Ext.data.DataProxy.html" ext:cls="Ext.data.DataProxy">Ext.data.DataProxy</a>.
See <a href="output/Ext.data.DataProxy.html" ext:cls="Ext.data.DataProxy">Ext.data.DataProxy</a>.<a href="output/Ext.data.DataProxy.html#Ext.data.DataProxy-exception" ext:member="exception" ext:cls="Ext.data.DataProxy">exception</a>
for additional details.<div class="mdetail-params"><strong style="font-weight: normal;">Listeners will be called with the following arguments:</strong><ul><li><code>misc</code> : misc<div class="sub-desc">See <a href="output/Ext.data.DataProxy.html" ext:cls="Ext.data.DataProxy">Ext.data.DataProxy</a>.<a href="output/Ext.data.DataProxy.html#Ext.data.DataProxy-exception" ext:member="exception" ext:cls="Ext.data.DataProxy">exception</a>
for description.</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#exception" ext:member="#exception" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-load"></a><b class="event"><a href="source/Store.html#event-Ext.data.Store-load">load</a></b><span class="colon">&nbsp;:&nbsp;</span><span class="openparen">(&nbsp;</span><span title="Required" class="required">Store&nbsp;this</span><span class="comma">,&nbsp;</span><span title="Required" class="required">Ext.data.Record[]&nbsp;records</span><span class="comma">,&nbsp;</span><span title="Required" class="required">Object&nbsp;options</span><span class="closeparen">&nbsp;)</span><span>&nbsp;</span><div class="mdesc"><div class="short">Fires after a new set of Records has been loaded.</div><div class="long">Fires after a new set of Records has been loaded.<div class="mdetail-params"><strong style="font-weight: normal;">Listeners will be called with the following arguments:</strong><ul><li><code>this</code> : Store<div class="sub-desc"></div></li><li><code>records</code> : Ext.data.Record[]<div class="sub-desc">The Records that were loaded</div></li><li><code>options</code> : Object<div class="sub-desc">The loading options that were specified (see <a href="output/Ext.data.Store.html#Ext.data.Store-load" ext:member="load" ext:cls="Ext.data.Store">load</a> for details)</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#load" ext:member="#load" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-loadexception"></a><b class="event"><a href="source/Store.html#event-Ext.data.Store-loadexception">loadexception</a></b><span class="colon">&nbsp;:&nbsp;</span><span class="openparen">(&nbsp;</span><span title="Required" class="required">misc&nbsp;misc</span><span class="closeparen">&nbsp;)</span><span>&nbsp;</span><div class="mdesc"><div class="short">This event is deprecated in favor of the catch-all exception
event instead.
This event is relayed through the corresp...</div><div class="long"><p>This event is <b>deprecated</b> in favor of the catch-all <b><code><a href="output/Ext.data.Store.html#Ext.data.Store-exception" ext:member="exception" ext:cls="Ext.data.Store">exception</a></code></b>
event instead.</p>
<p>This event is relayed through the corresponding <a href="output/Ext.data.DataProxy.html" ext:cls="Ext.data.DataProxy">Ext.data.DataProxy</a>.
See <a href="output/Ext.data.DataProxy.html" ext:cls="Ext.data.DataProxy">Ext.data.DataProxy</a>.<a href="output/Ext.data.DataProxy.html#Ext.data.DataProxy-loadexception" ext:member="loadexception" ext:cls="Ext.data.DataProxy">loadexception</a>
for additional details.<div class="mdetail-params"><strong style="font-weight: normal;">Listeners will be called with the following arguments:</strong><ul><li><code>misc</code> : misc<div class="sub-desc">See <a href="output/Ext.data.DataProxy.html" ext:cls="Ext.data.DataProxy">Ext.data.DataProxy</a>.<a href="output/Ext.data.DataProxy.html#Ext.data.DataProxy-loadexception" ext:member="loadexception" ext:cls="Ext.data.DataProxy">loadexception</a>
for description.</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#loadexception" ext:member="#loadexception" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-metachange"></a><b class="event"><a href="source/Store.html#event-Ext.data.Store-metachange">metachange</a></b><span class="colon">&nbsp;:&nbsp;</span><span class="openparen">(&nbsp;</span><span title="Required" class="required">Store&nbsp;this</span><span class="comma">,&nbsp;</span><span title="Required" class="required">Object&nbsp;meta</span><span class="closeparen">&nbsp;)</span><span>&nbsp;</span><div class="mdesc"><div class="short">Fires when this store's reader provides new metadata (fields). This is currently only supported for JsonReaders.</div><div class="long">Fires when this store's reader provides new metadata (fields). This is currently only supported for JsonReaders.<div class="mdetail-params"><strong style="font-weight: normal;">Listeners will be called with the following arguments:</strong><ul><li><code>this</code> : Store<div class="sub-desc"></div></li><li><code>meta</code> : Object<div class="sub-desc">The JSON metadata</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#metachange" ext:member="#metachange" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-remove"></a><b class="event"><a href="source/Store.html#event-Ext.data.Store-remove">remove</a></b><span class="colon">&nbsp;:&nbsp;</span><span class="openparen">(&nbsp;</span><span title="Required" class="required">Store&nbsp;this</span><span class="comma">,&nbsp;</span><span title="Required" class="required">Ext.data.Record&nbsp;record</span><span class="comma">,&nbsp;</span><span title="Required" class="required">Number&nbsp;index</span><span class="closeparen">&nbsp;)</span><span>&nbsp;</span><div class="mdesc"><div class="short">Fires when a Record has been removed from the Store</div><div class="long">Fires when a Record has been <a href="output/Ext.data.Store.html#Ext.data.Store-remove" ext:member="remove" ext:cls="Ext.data.Store">remove</a>d from the Store<div class="mdetail-params"><strong style="font-weight: normal;">Listeners will be called with the following arguments:</strong><ul><li><code>this</code> : Store<div class="sub-desc"></div></li><li><code>record</code> : Ext.data.Record<div class="sub-desc">The Record that was removed</div></li><li><code>index</code> : Number<div class="sub-desc">The index at which the record was removed</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#remove" ext:member="#remove" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-save"></a><b class="event"><a href="source/Store.html#event-Ext.data.Store-save">save</a></b><span class="colon">&nbsp;:&nbsp;</span><span class="openparen">(&nbsp;</span><span title="Required" class="required">Ext.data.Store&nbsp;store</span><span class="comma">,&nbsp;</span><span title="Required" class="required">Number&nbsp;batch</span><span class="comma">,&nbsp;</span><span title="Required" class="required">Object&nbsp;data</span><span class="closeparen">&nbsp;)</span><span>&nbsp;</span><div class="mdesc"><div class="short">Fires after a save is completed. A save encompasses destroying records, updating records and creating records.</div><div class="long">Fires after a save is completed. A save encompasses destroying records, updating records and creating records.<div class="mdetail-params"><strong style="font-weight: normal;">Listeners will be called with the following arguments:</strong><ul><li><code>store</code> : Ext.data.Store<div class="sub-desc"></div></li><li><code>batch</code> : Number<div class="sub-desc">The identifier for the batch that was saved.</div></li><li><code>data</code> : Object<div class="sub-desc">An object containing the data that is to be saved. The object will contain a key for each appropriate action,
with an array of records for each action.</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#save" ext:member="#save" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-update"></a><b class="event"><a href="source/Store.html#event-Ext.data.Store-update">update</a></b><span class="colon">&nbsp;:&nbsp;</span><span class="openparen">(&nbsp;</span><span title="Required" class="required">Store&nbsp;this</span><span class="comma">,&nbsp;</span><span title="Required" class="required">Ext.data.Record&nbsp;record</span><span class="comma">,&nbsp;</span><span title="Required" class="required">String&nbsp;operation</span><span class="closeparen">&nbsp;)</span><span>&nbsp;</span><div class="mdesc"><div class="short">Fires when a Record has been updated</div><div class="long">Fires when a Record has been updated<div class="mdetail-params"><strong style="font-weight: normal;">Listeners will be called with the following arguments:</strong><ul><li><code>this</code> : Store<div class="sub-desc"></div></li><li><code>record</code> : Ext.data.Record<div class="sub-desc">The Record that was updated</div></li><li><code>operation</code> : String<div class="sub-desc">The update operation being performed.  Value may be one of:
<pre><code>Ext.data.Record.EDIT
     Ext.data.Record.REJECT
     Ext.data.Record.COMMIT</code></pre></div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#update" ext:member="#update" ext:cls="Ext.data.Store">Store</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Store-write"></a><b class="event"><a href="source/Store.html#event-Ext.data.Store-write">write</a></b><span class="colon">&nbsp;:&nbsp;</span><span class="openparen">(&nbsp;</span><span title="Required" class="required">Ext.data.Store&nbsp;store</span><span class="comma">,&nbsp;</span><span title="Required" class="required">String&nbsp;action</span><span class="comma">,&nbsp;</span><span title="Required" class="required">Object&nbsp;result</span><span class="comma">,&nbsp;</span><span title="Required" class="required">Ext.Direct.Transaction&nbsp;res</span><span class="comma">,&nbsp;</span><span title="Required" class="required">Record/Record[]&nbsp;rs</span><span class="closeparen">&nbsp;)</span><span>&nbsp;</span><div class="mdesc"><div class="short">Fires if the server returns 200 after an Ext.data.Api.actions CRUD action.
Success of the action is determined in the...</div><div class="long">Fires if the server returns 200 after an Ext.data.Api.actions CRUD action.
Success of the action is determined in the <code>result[<em>'successProperty'</em>]</code>property (<b>NOTE</b> for RESTful stores,
a simple 20x response is sufficient for the actions "destroy" and "update".  The "create" action should should return 200 along with a database pk).<div class="mdetail-params"><strong style="font-weight: normal;">Listeners will be called with the following arguments:</strong><ul><li><code>store</code> : Ext.data.Store<div class="sub-desc"></div></li><li><code>action</code> : String<div class="sub-desc">[Ext.data.Api.actions.create|update|destroy]</div></li><li><code>result</code> : Object<div class="sub-desc">The 'data' picked-out out of the response for convenience.</div></li><li><code>res</code> : Ext.Direct.Transaction<div class="sub-desc"></div></li><li><code>rs</code> : Record/Record[]<div class="sub-desc">Store's records, the subject(s) of the write-action</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Store.html#write" ext:member="#write" ext:cls="Ext.data.Store">Store</a></td></tr></tbody></table></div>